使用复合键的高级JPA映射 - OneToMany关系

时间:2012-01-20 16:37:02

标签: jpa mapping composite-key one-to-many compound-key

我正在使用JPA 1.0,并且有以下表格,即类型,指南和地址(为了清晰起见,简化了名称并以粗体突出显示)这是一个场景,其中3个表之间的关系建立在复合键上。每个表的非关键字段都在实线下方。

的关系

类型一个-------->许多指南
指南许多< ----------一个地址

类型

代码PK
Date1 PK


姓名

指南
代码FK
       Date1 FK

地址标识符FK

Date2 FK


价值

地址

Addr Identifier PK

Date2 PK


邮政编码

(原谅上面的格式化问题) 我想从Type表开始并取消复合键Code和Date1,从Guide表中获取多行(作为列表)。然后使用Addr Identifier和Date2从行中我想在Address表中获得一行。请注意这些是参考表,数据没有变化,因此这些表中没有删除或更新

我尝试过这个简单的注释列表,返回空列表。 (代码是为了清晰起见)

1)

@Entity
@Table(name = "Type")
public Class Type
@OneToMany(mappedBy = "type", fetch = FetchType.EAGER)
private List<Guide> listGuide;

    getListGuide() {
        return listGuide;
    }

2)

@Entity
@Table(name = "Guide")
public Class Guide

@ManyToOne
@JoinColumns({@JoinColumn(name = "Code"),
         @JoinColumn(name = "Date1") })
private Type type;

当我使用getListGuide()时,我得到一个空列表。

你能建议一个解决方案吗?

我还需要指南和地址实体之间的映射解决方案。

此致

0 个答案:

没有答案