我正在考虑使用DTO投影-我有两个具有一对多关系的实体(EntityOne的实例链接到EntityTwo的多个实例),并且我想将结果作为新的DTO对象返回-我目前正在尝试的是这样的:
query.select(Projections.constructor(MyDtoObject.class,
entityOne, list(entityTwo)))
.from(entityOne, entityTwo)
.where(......)
MyDtoObject如下所示:
public class MyDtoObject {
private EntityOne entityOne;
private Collection<EntityTwo> entityTwoCollection
// getters, setters and an all args constructor method here
}
但是,这带来的MyDtoObjects比预期的要多得多,而且看起来每个人仅持有一个entityTwo对象而不是集合。
如何指示queryDSL创建具有多个entityTwo条目的MyDtoObjects结果对象?在上面的场景中,list(..)方法甚至还能做什么?
答案 0 :(得分:0)
queryFactory.from(Entity)
.transform(groupBy(Entity.something).list((
Projections.fields(EntityDto.class,
list(Projections.fields(Dto.class,
)).as("CollectionEntity"),
)));
尝试使用列表进行转换