2015-01-16 1 views
0

Есть 2 таблицы, которые отображаются в 1 класс. Это работает, но когда я хочу обновить объект, я не знаю, из какой таблицы он пришел. Есть способ сохранить или получить имя объекта?Hibernate получить значение имени объекта

Mapping:

<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 для сопоставления подклассам, а не суперклассам. Я бы сказал, что вы неправильно используете спящий режим, поэтому обычно должно быть сопоставление между собой между таблицами базы данных и объектами Java. Подумайте об этом с точки зрения единой ответственности, он имеет смысл хранить два разных набора данных в одном и том же объекте. По сути, у вас есть две таблицы для начала! – ConMan