JPQL 查询可以使用NEW
运算符返回自定义结果对象:
SELECT NEW myPackage.MyVO(e.fieldX, e.relationshipX.fieldY)
FROM MyEntity AS e
这对于喂养 VO 非常有用。问题是,您必须创建与查询投影的参数数量、顺序和类型完全匹配的构造函数。当您对同一个 VO 使用大量投影时,这开始变得混乱……您的 VO 中有一个大的构造函数并NULL
在查询中使用大量文字,或者您的 VO 必须有很多不同的构造函数。
所以我的问题是:在 JPQL 中有没有办法通过 mutators 而不是构造函数来设置结果对象字段?
对于具有 .NET 背景的人,我正在寻找相当于LINQ + object initializers的东西。