使用Hibernate加入没有PK的遗留表

时间:2012-05-30 13:59:47

标签: java hibernate jpa

我有2张遗留表:

CREATE TABLE A (
    ID NUMBER PRIMARY KEY , 
    DATA NUMBER
)

CREATE TABLE A_CONF (
    A_ID NUMBER,    // FK to A
    INFO VARCHAR2(256)
)

A创建JPA实体非常简单。但是,我可以检索可以与INFO实例关联的多个A字段,因为A_CONF中没有PK,因此无法为其创建实体?

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

好像你正在寻找JPA所谓的“元素集合”:

@Entity
public class A {
    @Id
    private Long id;
    private Long data;

    @ElementCollection
    @CollectionTable(name="A_CONF", joinColumns=@JoinColumn(name="A_ID")) // A_ID would be the default join column
    @Column(name="INFO")
    private Set<String> infos; // using Set assuming unique values
}

答案 1 :(得分:0)

您可以在模型类中定义主键,即使您的表没有主键,只需在模型中选择一个或多个列并将它们作为ID。