我需要你的帮助。
我正在尝试用hibernate和jpa映射我的对象。
我有2个表,参考和人(例如)
the attributs of reference are ( id_ref, description_ref)
the attributes of person are : id_person,addresse,colorEyes,jobetc).
和address是一个字符串,但所有其他字符串都是int。 现在,colorEyes和job中的2个int值引用了带有
的引用表中的2个不同的int person.colorEyes=reference.id_ref and person.job=reference.id_ref , those id_ref are not the same for colorEyes and job.
我想映射引用和person表之间的关系,是否可以使用hibernate和jpa注释来实现?我应该放置一个oneToOne类型的关系吗?即使两个属性都与引用表有关?我找到了可选择的注释,但是他们总是谈论两个属性之间的不同表格并不总是相同的。
如果无法使用别名吗?或者我应该选择HQL?
任何事情都会非常有帮助。坦克
答案 0 :(得分:1)
我不认为Hibernate会对以下内容产生任何问题......
@ManyToOne( ...)
@JoinColumn(name="colorEyes")
public Reference getColorEyes() {
return company;
}
@ManyToOne( ...)
@JoinColumn(name="jobetc")
public Reference getJobEtc() {
return company;
}
请注意,我使用 ManyToOne 而不是 OneToOne ,因为我认为多人可以拥有相同的眼睛颜色。
但是,您可能希望真正考虑将引用表拆分为多个表,每个表对应一种数据类型。这将是更好的数据库格式Third Normal Form
这也会使您的代码更具可读性,因为您可以使用不同的类来保存EyeColor和JobEtc。