【问题标题】:JPA 2.0 hobernate 4+ @OneToMany unidirectional setJPA 2.0 hobernate 4+ @OneToMany 单向集
【发布时间】:2012-12-18 13:49:20
【问题描述】:

我阅读了很多关于 @OneToMany 的主题和论坛,但不幸的是,这些都无济于事。

例如我们有这样的实体:

@Entity
@Table(name = "MANAGER")
public class Manager{

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "MAN_ID")
    private long id;

    @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
    @JoinColumn(name = "MAN_ID", updatable=true)     
    private Set<Workers> workers;

    @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
    @JoinColumn(name = "MAN_ID", updatable=true)   
    private Set<Helpers> helpers;

...
}

@Entity
@Table(name = "WORKERS")
public class Workers{

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "ID")
    private long id;

...
}

@Entity
@Table(name = "HELPERS")
public class Helpers{

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "ID")
    private long id;

...
}

现在我正在尝试保存第一次 Manager 对象(两个集合都不为空)

Session session = getSession();
Transaction tx = session.beginTransaction();
session.save(holder);
tx.commit();

作为回报,我看到 hibernate 如何尝试插入,但没有更新工人和助手。 当我从 DB 取回 Manager 时,两个列表都是空的(null)。 我在这里错过了什么?

【问题讨论】:

  • 你有公共/受保护的 getter 和 setter 吗?

标签: jpa insert-update one-to-many hibernate-4.x


【解决方案1】:

看起来我缺少可为空的

@JoinColumn(name = "MAN_ID", nullable = false)  

【讨论】:

    猜你喜欢
    • 2016-02-27
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 2013-06-17
    • 1970-01-01
    • 1970-01-01
    • 2016-08-19
    相关资源
    最近更新 更多