2011-05-18 84 views
0

我无法弄清楚如何组织项目类...的Eclipse + Hibernate的春天+质疑

我需要显示所有工人与他们的专业(类)的历史。

我在DB 3个表: 工人:ID,姓名,地址 特长:ID,描述 Worker_Type:id_worker,id_specialty,HIRE_DATE

我:

class Specialty 
{ 
    ... 
} 

class Worker 
{ 
    private List<Specialty> history; 
    ... 
} 

我怎么能将专业(班级)映射到两个表格(Specialty和Worker_Specialty)以获取关于员工包含历史记录的所有信息?

也许我必须创建一个类SpecialtyHistory并将其映射到Worker_Specialty?

回答

5

您所描述的称为三元关联,或者换句话说,是一种多对多的关系,包括添加关系本身的信息。有三种方法可以映射三元关联,其中一种方法就是像上面提到的那样创建一个SpecialtyHistory类,将关系视为一流的实体。如果您不需要hire_date,则可以使用普通的多对多映射。

Hibernate文档包含关于ternary associations的其他信息。

以前的一些StackOverflow问题:hibernate: ternary association mappingTernary (and n-ary) relationships in Hibernate