2015-01-16 65 views
0

有2个表映射到1个类。这有效,但是当我想更新对象时,我不知道它来自哪个表。有没有办法存储或获取实体名称?Hibernate获取实体名称值

映射:

<hibernate-mapping> 
    <class name="model.object.ObjectAttributeType" table="OBJECTPARAMETERTYPE" entity-name="OBJECTPARAMETERTYPE"> 
    ... 
    </class> 
    <class name="model.object.ObjectAttributeType" table="OBJECTPROPERTYTYPE" entity-name="OBJECTPROPERTYTYPE"> 
     ... 
    </class> 
</hibernate-mapping> 

回答

2

您可以定义2班

public class ParameterObjectAttributeType extends ObjectAttributeType 
public class PropertyObjectAttributeType extends ObjectAttributeType 

和不同类映射到2页不同的表

+0

是啊,这是一种选择,但不是子类会完全空虚。而且我只会在可以设置变量槽hbm或获取实体名称的情况下工作。 – ThijsJ

+0

这个答案是正确的,你只需要更新你的hbm来映射到子类而不是超类。我会争辩说,你正在使用休眠不正确,通常shuld是数据库表和Java实体之间的一对一映射。从单一责任的角度考虑它,在同一个对象中持有两组不同的数据是合理的。这就是为什么你有两张桌子开始! – ConMan