JPA 2 标准 API:在没有静态元模型的集合中过滤特定字段



>我有一个JPA数据模型如下(简化版本),我想在某些给定日期之间获得事件的需求。

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

我确实得到了对事件属性的路径引用,但我不知道如何根据日期属性表达 between 谓词。

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

抛出"org.springframework.dao.InvalidDataAccessApiUsageException: 非法尝试取消引用路径源"异常。感谢您的帮助!

我找到了一种方法来重新定义事件的属性

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);

我无法从联接对象获取路径重新围栏。

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

最新更新