Hibernate 4 @OneToMany List <String>

fxe*_*fxe 13 java hibernate jpa

对于@OneToMany关系,我是否必须映射到对象?

我有以下示例

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

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

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

}
Run Code Online (Sandbox Code Playgroud)

如果酒吧是我会做的对象

@ManyToOne
@JoinColumn(name="ID_FOO")
Run Code Online (Sandbox Code Playgroud)

问题就解决了.但是,我想避免创建一个只表示一对字符串的对象(引用键,值).

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
);
Run Code Online (Sandbox Code Playgroud)

Ala*_*Hay 23

@ElementCollection是你在找什么.这允许您为非实体类定义映射,例如Embeddable或Basic.

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

您还可以使用@CollectionTable来定义表.

@ElementCollection
@CollectionTable(name = "data" ....)
private List<String> data;
Run Code Online (Sandbox Code Playgroud)