簡體   English   中英

JPA標准ManyToMany加入還是不加入?

[英]JPA Criteria ManyToMany Join or No Join?

我有2個實體與以下Metamodels。

@StaticMetamodel(SearchIn.class)
public class SearchIn_ {
    public static volatile SingularAttribute<SearchIn, Integer> id;
    public static volatile SingularAttribute<SearchIn, String> searchString;
    public static volatile SetAttribute<SearchIn, Take> takes;
    // Other Attributes...
}

@StaticMetamodel(Take.class)
public class Take_ {
    public static volatile SingularAttribute<Take, Integer> id;
    // Other Attributes...
}

該關系是由SearchIn.Class映射的ManyToMany,而Take.Class沒有指向SearchIn.Class。

我現在需要的是使用特定searchString映射到SearchIn的所有Takes。 我想使用標准api,但我無法確定我需要哪個權限作為Root以及如何與其進行聯接。 我看到了其他一些類似的問題,但不是真正的我想要的東西,我不能讓它工作:/

所以,somone可以給我一個提示並幫助我構建它嗎?

你為什么不嘗試一個簡單的連接:

Root<SearchIn> root = criteriaQuery.from(SearchIn.class);
Join<SearchIn, Take> takeJoin = root.join(SearchIn_.takes);
criteriaQuery.where(builder.equal(root.get(SearchIn_.searchString), "bla"));


TypedQuery<SearchIn> typedQuery = entityManager.createQuery(criteriaQuery);
return typedQuery.getResultList();

您的返回值將是SearchIns列表。 你只需要為你的Takes打電話給getet。 如果它正在運行我還沒試過。 我只是從我的一些代碼片段中復制了它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM