Hibernate: отображение одного столбца в разные таблицы - PullRequest
0 голосов
/ 25 марта 2011

У меня есть следующие таблицы:

Template(
Template_Id,
Template_Name,
Component_Type,
Component_Id
)

Division(
Division_Id,
Division_Name
)

SubDivision(
SubDivision_Id,
SubDivision_Name
)

Department(
Department_Id,
Department_Name
)

В таблице Template поле Component_Type может содержать значение Division или SubDivision или Department.

Component_Id будет содержать Division_Id или SubDivision_Id или Depatment_Id в зависимости от Component_Type.

Мне известно, что таблица шаблонов не полностью нормализована, и было бы лучше иметь разные таблицы, такие как Template_Division, Template_SubDivision и т. Д. Однако это существующие таблицы, и мы не можем их изменять.

Мой вопрос Как мне настроить столбец Component_Id в классе Template?

Template.java будет выглядеть следующим образом: -

public class Template{

@Id
@Column(name="Template_Id)
private Long id;

@Column(name="Template_Name)
private String name;

@Column(name="Component_Type")
private String componentType; 

}

Может кто-нибудь объяснить, как настроить столбец Component_Id?

Спасибо.

1 Ответ

0 голосов
/ 25 марта 2011

Вы можете использовать @Any аннотацию . Обратите внимание, что, начиная с Hibernate 3.5, вы должны обращаться к Hibernate через интерфейс Session (т.е. не EntityManager), чтобы использовать его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...