一尘不染

Hibernate 4 @OneToMany列表

hibernate

对于@OneToMany关系,我必须映射到Objects吗?

我有下面的例子

@Entity
@Table(name="FOO_TABLE")
public class Foo {

    @Id
    @Column(name="ID")
    @GeneratedValue
    private int id;

    ?????
    private List<String> bars;

}

如果酒吧是我的目标

@ManyToOne
@JoinColumn(name="ID_FOO")

问题就解决了 但是,我要避免创建仅代表一对字符串(引用键,值)的对象。

FOO和BAR存储在单独的表中

CREATE TABLE Foo (
    ID INTEGER NOT NULL AUTO_INCREMENT,
    //SOME OTHER PROPERTIES
    PRIMARY KEY( ID),
);

CREATE TABLE Bar (
    ID_FOO INTEGER,
    VAL VARCHAR(256),
    PRIMARY KEY (ID_FOO, VAL),
    FOREIGN KEY ( ID_FOO) REFERENCES Foo( ID) ON DELETE CASCADE
);

阅读 183

收藏
2020-06-20

共1个答案

一尘不染

@ElementCollection是您要寻找的。这使您可以为非实体类(例如Embeddable或Basic)定义映射。

http://en.wikibooks.org/wiki/Java_Persistence/ElementCollection

您也可以使用@CollectionTable定义表。

@ElementCollection
@CollectionTable(name = "data" ....)
private List<String> data;
2020-06-20