Java 由参考表映射的表中的2个属性';s属性

Java 由参考表映射的表中的2个属性';s属性,java,hibernate,jakarta-ee,jpa,Java,Hibernate,Jakarta Ee,Jpa,我需要你的帮助 我正在尝试用hibernate和jpa映射我的对象 我有两个表,参考和个人(例如) 地址是一个字符串,但所有其他的都是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. 我想映射引用和

我需要你的帮助

我正在尝试用hibernate和jpa映射我的对象

我有两个表,参考和个人(例如)

地址是一个字符串,但所有其他的都是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注释来实现这一点?我应该把两个关系放在同一类型吗?即使两个属性都与一个引用表有关?我找到了selectedtable注释,但它们总是谈论不同的表,这两个属性之间并不总是相同的

如果不可能,是否仍可以使用alias?还是我应该选择HQL


任何东西都会非常有用。我认为Hibernate在以下方面不会有任何问题

@ManyToOne( ...)
@JoinColumn(name="colorEyes")
public Reference getColorEyes() {
    return company;
}

@ManyToOne( ...)
@JoinColumn(name="jobetc")
public Reference getJobEtc() {
    return company;
}
请注意,我使用了一个ManyToOne而不是OneToOne,因为我假设多个人可能有相同的眼睛颜色

但是,您可能需要真正考虑将引用表分割成多个表,每个数据类型都有一个表。这将是更好的数据库形式

这也将使您的代码更具可读性,因为您将有不同的类来保存EyeColor和jobEt等

@ManyToOne( ...)
@JoinColumn(name="colorEyes")
public Reference getColorEyes() {
    return company;
}

@ManyToOne( ...)
@JoinColumn(name="jobetc")
public Reference getJobEtc() {
    return company;
}