我有以下表格:
EMPLOYEE
---------
EMPL_ID (PK)
FRST_NAME
LAST_NAME
EMP_TYP_CODE
(etc.)
CODE
---------
DOMAIN (PK part)
CODE (PK part)
DESCRPTN
因为我希望有一个代码查找表,其中代码按域分区,而不是每个代码都有一个单独的查找表,这会在我的架构中引入许多表,我不喜欢这样。所以CODE中的PK是复合的(DOMAIN,CODE)。想象一下,CODES中的数据类似于
CODE_DOMAIN CODE DESCRPTN
--------------------------------
EMP_TYP F full time
EMP_TYP P part time
EMP_TYP T temp
COMP_LEVEL A entry
COMP_LEVEL B mid
(etc.)
将我的Employee Entity
类链接到Code实体类时,如何指定我对CODE表感兴趣的只是其子集中具有EMP_TYP的DOMAIN而没有冗余的DOMAIN列/字段在Employee表/类中?
我试过
@ManyToOne
@JoinColumn(name = "EMP_TYP_CODE")
private Code empType;
但得到了
org.hibernate.AnnotationException: A Foreign key refering com.myapp.Code from com.myapp.Employee has the wrong number of column. should be 2.
另请参阅the sequel此问题。