【问题标题】:Hibernate 4 @OneToMany List<String>休眠 4 @OneToMany 列表<String>
【发布时间】:2013-11-13 23:19:47
【问题描述】:

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

我有下面的例子

@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
);

【问题讨论】:

    标签: java hibernate jpa


    【解决方案1】:

    @ElementCollection 是您正在寻找的。这使您可以为非实体类定义映射,例如可嵌入或基本。

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-16
      • 2013-07-01
      • 1970-01-01
      • 2017-07-30
      • 2015-07-07
      • 2019-12-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多