Hibernate,因为计算字段的子类化(Hibernate 2.8.1)

时间:2012-10-15 12:46:55

标签: hibernate mapping subclassing

我在我的数据库中有一个视图,例如 view1 ,我需要使用此视图向报告 view1report 添加一些计算字段,例如AplusB

(当然我想通过Hibernate将它们作为对象处理)

示例

view1
    int a
    int b
---    
view1report extends view1
    int AplusB
....
public int setAplusB() { ... my own logic ...}

问题

  • 甲。可以通过Hibernate解决吗?

如果是的话

  • B中。如何构建我的hmb.xml来表达子类?
  • ℃。最后但并非最不重要的是如何在计算字段的设置者中使用我自己的逻辑?

(之所以我想将它们与其他计算字段分开)

2 个答案:

答案 0 :(得分:0)

创建视图并在db中执行。现在创建一个POJO来映射视图。如果要使用HBM映射实体,请创建hbm文件并在映射表时映射它。如果您正在使用注释,请使用映射相应字段

创建带注释的类

在映射的类中,再创建一个文件(如果是带注释的类,则添加@Transient注释

public int aplusb;

在其getter方法中,返回a和b的总和。

return a+b;

这样可行。

答案 1 :(得分:0)

所以,我发现我不需要配置hbm.xml来生成子类(它刚刚计算了字段)。 我只需要以编程方式自己创建hibernate生成的类。

这是一个很好的教训。

那些没有按照这个讨论我的想法是我将生成hbm2java的 view1report 类(参见示例),该类只计算基于超类 view1的字段