【发布时间】:2015-04-09 15:02:20
【问题描述】:
我想创建一个复杂 DTO 对象列表,其中包含来自多个实体的数据和一个非实体参数。假设我的 DTO 类有构造函数:
public MyDto(String entityField, String someString) {...}
我想使用CriteriaBuilder.construct 方法来创建我的列表,如下所示:
CriteriaBuilder builder = em.getCriteriaBuilder();
CriteriaQuery<MyDto> query = builder.createQuery(MyDto.class);
Root<MyEntity> root = query.from(MyEntity.class);
builder.construct(MyDto.class, root.get("entityField"), someString);
...
但我不允许这样做,因为construct 方法只需要我提供javax.persistence.criteria.Selection 参数。
问题:有没有一种方法可以使用 Criteria API 来做类似的事情(一次)?或者我需要先加载 MyEntity 对象并遍历它们并创建一个 DTO 列表(不是那么漂亮)?
【问题讨论】:
-
builder.literal(value) ?
-
谢谢!是的,这正是我要找的:)
标签: jpa eclipselink criteria-api jpa-2.1