2012-06-15 47 views
0

我有一個JPA數據模型,如下所示(簡化版),我希望獲得某些給定日期之間事件的需求。JPA 2 Criteria API:在無靜態集合中的特定字段上進行過濾元模型

public class Demand { 
private Set<Event> events; 
} 

public class Event { 
private Date date; 
} 

我得到一個事件屬性的路徑引用,但我不知道如何表達一個基於date屬性的謂詞。

Path<Set<Evenement>> pathEvents = demand.<Set<Evenement>> get("events"); 
pathEvents.get("date") 

扔 「org.springframework.dao.InvalidDataAccessApiUsageException:非法嘗試取消引用路徑源」 異常。 感謝您的幫助!

回答

-1

我找到一種方式來獲得refences到事件的屬性

CriteriaBuilder cb = entityManager.getCriteriaBuilder(); 
CriteriaQuery<Tuple> c = cb.createTupleQuery(); 
Root<Demand> demandes = c.from(Demand.class); 
Join<Demand, Evenement> joinEvent = d.join("events", JoinType.INNER); 

我不能得到從加入對象路徑refences。

Path<DateTime> dateExpr = joinEvent.get("date"); 
+1

「d」從哪裏來? – thoredge

+0

我不記得,但我認爲它應該是demandes變量。 – yesil