2

我有一个计算的业务对象的属性。该计算涉及一些登录用户的详细信息,因此不能表示为简单的 SQL 查询。

我在表示 Hibernate 映射 XML 文件中的字段时遇到了问题,因为 Hibernate 继续尝试从数据库中检索该字段,尽管没有该名称的列。

4

2 回答 2

1

我无法在 Hibernate 映射 XML 文件中表示该字段,因为 Hibernate 继续尝试从数据库中检索该字段,尽管没有该名称的列。

我可能遗漏了一些明显的东西,但是......你为什么要映射这个字段呢?但以防万一,这可能是<formula>属性的一个很好的用例。


该字段位于 Java 类中,当我编写查询代码时,我可以提供自定义 SQL 来填充它,例如:SELECT t.*, (SELECT x FROM y) AS field FROM table t WHERE... Hibernate 允许我然后使用 SQLQuery.addEntity(Z.class) 并适当地创建对象。据我了解,如果我完全将该字段排除在映射之外,我将永远无法通过查询填充该属性。我努力了 :)

我怀疑这样的事情,但我想得到确认。我认为您在这里没有那么多选择:要么使用 a <formula>(它是一个“愚蠢的”公式,只是为了欺骗休眠)或返回一个非托管实体

于 2010-08-18T08:22:04.623 回答
0

听起来你希望这个属性是“瞬态的”

<transient name="foo" />
于 2010-08-18T12:41:40.200 回答