要么:
使用投影-专业:无添加-缺点:不是类型安全的(结果是
List
一行的行,每行都是Object[])
:select f.foo, f.bar from FatEntity f
在SELECt子句中使用构造函数表达式(不需要将指定的类作为实体或映射到数据库)-Pro:类型安全的解决方案-Con:更多类,除非您重用
FatEntity
作为持有者,否则将有很多字段null
:select new com.acme.FatEntityDetails(f.id, f.foo, f.bar) from FatEntity f
请注意,如果在
SELECt NEW子句中指定了实体类名称,则生成的实体实例将处于 新 状态(无持久身份)。
- 使用仅在必填字段上映射到同一表的另一个实体-Pro:这是您可以修改和更新的真实实体-Con:更多类。
from LightEntity
#2和#3之间的主要区别是:
- 2完全不需要持有人成为实体。
#2中的所有者可以是映射到另一个表的实体。
- 如果#2返回实体,则它们处于新状态(这可能是一个问题,也可能不是)。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)