如何将另一列映射到Hibernate bean?

时间:2014-06-18 16:56:14

标签: java hibernate criteria

我有一个使用hbm.xml文件映射到Hibernate的对象。该表的BEAN /对象包括一个额外的字段,具有适当的getter / setter。我想做点什么:

SELECT T.*, 'XYZ' as otherData FROM table T

并将所有数据映射到BEAN,包括假/附加列的值 - '其他数据。'

这应该很简单,也许我很容易丢失一些东西,但是我无法让它发挥作用。我尝试过使用

createSQLquery() with addEntity(), addScalar(), setResultTransformer()

createCriteria() with a projectionList() and setResultTransformer()

以及我能想到的任何其他东西,没有任何东西可以产生预期的效果。我不想要一个通用的对象列表,我必须解析它来构建我的对象,并且我不想在构建此查询时指定表的每一列。

有什么办法可以做到吗?

1 个答案:

答案 0 :(得分:0)

您可以考虑使用该属性的公式。您可以使用任何SQL查询数据填充它。例如,考虑订单 - 订单行关系,您希望使用订单行数填充订单的属性,例如:

public class Order {
  private String orderNumber;
  private int lineCount;

... }

然后映射将是:

<class name="Order" ....>
  ...
  <property name="lineCount"
    formula="(select COUNT(*) from ORDER_LINE l where l.ORDER_NUMBER = ORDER_NUMBER)"/>
  ...
</class>
相关问题