【发布时间】:2011-10-28 16:11:27
【问题描述】:
让我们描述以下用例:我有一个 JPQL 查询,它使用 new 关键字动态创建数据对象。在SELECT 子句中,我想注入一个数据库不知道但查询它的层的属性。
这可能看起来像
EntityManager em; // Got it from somewhere
boolean editable = false; // Value might change, e.g. depending on current date
Query q = em.createQuery("SELECT new foo.bar.MyDTO(o, :editable) FROM MyObject o")
.setParameter("editable", editable);
List<MyDTO> results = (List<MyDTO>) q.getResultList();
任何想法如何在 JPQL 中将这种属性或参数注入到 SELECT 子句中? JPA 和 JPA 2.0 解决方案都适用。
编辑:性能并不起关键作用,但代码的清晰度和清洁度。
【问题讨论】:
标签: java jpa persistence jpql