2012-12-18 66 views
0

我讀了很多關於@OneToMany的主題和論壇,但不幸的是這些都無法幫助。JPA 2.0 hobernate 4+ @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試圖做插入,但沒有更新的工人和助手。 當從數據庫中取回管理器時,兩個列表均爲空(空)。 我在這裏失蹤了什麼?

+0

你有getter和setter公共/保護? – fiso

回答

2

它看起來像我遺失可空

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