[英]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.