【问题标题】:JPA 2 Criteria API: filtering on a specific field in collections without static MetamodelJPA 2 Criteria API:在没有静态元模型的集合中过滤特定字段
【发布时间】:2012-06-15 14:54:56
【问题描述】:

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

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

public class Event {
 private Date date;
}

我确实获得了对 events 属性的 Path 引用,但我不知道如何根据 date 属性表达一个 between 谓词。

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

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

【问题讨论】:

    标签: hibernate jpa criteria


    【解决方案1】:

    我找到了一种获取事件属性引用的方法

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

    【讨论】:

    • 我不记得了,但我认为它应该是需求变量。
    猜你喜欢
    • 2011-03-29
    • 2018-01-10
    • 2012-04-13
    • 2019-04-18
    • 2011-08-31
    • 1970-01-01
    • 1970-01-01
    • 2014-11-20
    • 2020-11-16
    相关资源
    最近更新 更多