使用休眠获取更少的列

使用休眠获取更少的列,第1张

使用休眠获取更少的列

要么:

  1. 使用投影-专业:无添加-缺点:不是类型安全的(结果是

    List
    一行的行,每行都是
    Object[])

    select f.foo, f.bar from FatEntity f
  2. 在SELECt子句中使用构造函数表达式(不需要将指定的类作为实体映射到数据库)-Pro:类型安全的解决方案-Con:更多类,除非您重用

    FatEntity
    作为持有者,否则将有很多字段
    null

    select new com.acme.FatEntityDetails(f.id, f.foo, f.bar) from FatEntity f

请注意,如果在

SELECt NEW
子句中指定了实体类名称,则生成的实体实例将处于 状态(无持久身份)。

  1. 使用仅在必填字段上映射到同一表的另一个实体-Pro:这是您可以修改和更新的真实实体-Con:更多类。
    from LightEntity

#2和#3之间的主要区别是:

  • 2完全不需要持有人成为实体。
  • #2中的所有者可以是映射到另一个表的实体。

  • 如果#2返回实体,则它们处于新状态(这可能是一个问题,也可能不是)。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5124769.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存