如何在 Hibernate 5.2 之后使用 \`setResultTransformer\`?

新手上路,请多包涵

我想用 query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP) 得到一个 List<Map> 。但我有一个例外:

 java.lang.NoSuchMethodError: org.hibernate.query.Query.setResultTransformer(Lorg/hibernate/transform/ResultTransformer;)Lorg/hibernate/Query;

我找不到 org.hibernate.query.Query 的实现类。方法 setResultTransformerorg.hibernate.Query 中。

为什么不推荐使用 org.hibernate.Query?

原文由 blackdog 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.4k
2 个回答

ResultTransformer 附带了一个不遵循函数式接口语法的遗留定义。因此,我们不能在此示例中使用 lambda。 Hibernate 6.0 旨在克服这个问题,因此这就是不推荐使用 Hibernate ORM 5.2 ResultTransformer 的原因。尽管如此,将提供替代方案,因此我们在本文中讨论的概念即使在 Hibernate 6 中也将保持不变。

https://vladmihalcea.com/why-you-should-use-the-hibernate-resulttransformer-to-customize-result-set-mappings/

原文由 ali akbar azizkhani 发布,翻译遵循 CC BY-SA 4.0 许可协议

Hibernate 6 尚未发布。但是,基于此 问题,ResultTransformer 接口被拆分为 2 个功能接口:TupleTransformer 和 ResultListTransformer。

原文由 Pavel_K 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题