阻止冬眠试图从数据库中获取计算的字段
-
29-09-2019 - |
题
我有计算业务对象的属性。该计算涉及一些登录的用户详细信息,因此不能表示为简单的SQL查询。
我在表示Hibernate映射XML文件中的字段时遇到了麻烦,因为Hibernate继续尝试从数据库中检索该字段,尽管该名称没有列。
解决方案
我在表示Hibernate映射XML文件中的字段时遇到了麻烦,因为Hibernate继续尝试从数据库中检索该字段,尽管该名称没有列。
我可能缺少一些明显的东西,但是...为什么要映射此字段?但以防万一,这可能是一个很好的用例 <formula>
属性。
该字段在Java类中,当我编码查询时,我可以提供自定义SQL以填充它,例如:选择t。*,(从y中选择x)作为字段作为从表T中的字段,其中... Hibernate允许我然后使用sqlquery.Addentity(Z.Class)并适当地创建对象。据我所知,如果我将字段完全排除在映射之外,我将永远无法通过查询填充该属性。我试过了 :)
我怀疑这样的事情,但我想获得确认。我认为您在这里没有那么多选择:要么使用 <formula>
(是欺骗冬眠的“愚蠢”公式)或 返回非托管实体.
其他提示
听起来您希望该属性是“瞬态”
<transient name="foo" />
不隶属于 StackOverflow