【问题标题】:Hibernate Criteria how to add new construction in Projections or other?Hibernate Criteria 如何在 Projections 或其他中添加新结构?
【发布时间】:2013-10-29 10:43:21
【问题描述】:

使用 HQL 我可以输入以下语句:

SELECT new MyClass(u.name,u.email) FROM User u ;

其中 MyClass 是一个普通的 Javabean,其名称和电子邮件作为构造函数。

我喜欢使用 Hibernate Criteria 来构造这样的查询。这可能吗。我知道我可以使用 Projections 将列限制为 name 和 email,但是如何在 Criteria 中使用 new 运算符?

【问题讨论】:

    标签: java hibernate


    【解决方案1】:

    你应该使用

    .setResultTransformer(Transformers.aliasToBean(MyClass.class));
    

    这是一个很好的例子Hibernate Criteria Transformers.aliasToBean

    【讨论】:

      【解决方案2】:

      每当我查看 Criteria API 代码时,我都会记得我为什么避免使用它: 无论如何,请参见此处的 9.1.4:

      http://docs.jboss.org/hibernate/entitymanager/3.5/reference/en/html/querycriteria.html#querycriteria-typedquery-multiselect

      【讨论】:

      • 是的,这个解决方案有效。谢谢。有点像标准构建器,但我想这只是个人品味。
      • 以前接受的答案看起来更容易使用,但是因为您不需要大型构造函数。对于强类型查询,我最近一直在使用 QueryDsl,我发现它要简单得多。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-08
      • 2013-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-08
      相关资源
      最近更新 更多