我们在 DB2 中使用休眠。我们的方法需要分页来支持前端。我们使用setMaxResults
andsetFirstResult
方法。这适用于 HQL,但是当我们尝试通过以下方式将 SQL 转换为 bean 时:
sql.setResultTransformer(Transformers.aliasToBean(SubscriptionAndDecode.class));
我们得到了异常:
org.hibernate.PropertyNotFoundException: Could not find setter for ROWNUMBER_ on class gov.usdoj.afms.enote.model.query.UM02.SubscriptionAndDecode
这是真的,因为这个 bean 没有,ROWNUMBER_
因为它不是 SQL 的一个元素。我在其他地方读到,Hibernate 应该构建一个子查询来创建一个假行号并进行分页,因为 DB2 没有提供太多帮助,但这ROWNUMBER_
不应该是实际结果的一部分,也不应该是转换后 bean 的一部分我明白了。
当然,我们可以为每个以这种方式使用的 bean 添加一个“假”属性,但这不是最佳的。我们需要做些什么来按摩 bean 转换或其他什么?