时间:2010-07-26 15:15:53

标签: jpa

2 个答案:

答案 0 :(得分:0)

也许使用单向一对多关系映射。

希望这会有所帮助。 RG

@Entity
@Table(name="OBJECT")
public class MyObject
{
    @Id
    @Column(name="OBJECT_ID")
    private int id;

    @Column(name="FIELD_NAME")
    private String fieldName;

    @OneToMany
    @JoinTable(name="OBJECT_FORM",
        joinColumns=@JoinColumn(name="OBJECT_ID"),
        inverseJoinColumns=@JoinColumn(name="FORM_ID"))
    private Collection<MyObjectField> objectFields;

    ...
}

@Entity
@Table(name="OBJECT_FIELDS")
public class MyObjectField
{
    @Id
    @Column(name="FORM_ID")
    private int id;

    @Column(name="FIELD_DESC")
    private String fieldDescription;

    ...
}

答案 1 :(得分:0)

这有点违反直觉,但这可能最好使用@ManyToMany映射进行映射。

请考虑您的表格结构适应给定form_id与多个object_id相关联的情况,反之亦然。即使您的业务逻辑禁止这样做,这也是关系的模型。

查看this articlethis code sample如何执行此操作。由于你没有告诉我们你的班级模型,所以很难给出具体的例子。