2012-12-18 6 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; 

... 
} 

대가로

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

내가 시도를 최대 절전 모드 어떻게 볼 (두 세트를 버리지와) 처음으로 관리자 객체를 저장하려고 메신저 인서트를 할 수는 있지만 작업자와 도우미에게는 업데이트가 없습니다. 메신저가 DB에서 다시 Manager를 가져올 때 두 목록은 모두 비어 있습니다 (null). 여기에 무엇이 누락되어 있습니까?

+0

가 공용으로 getter와 setter가 있습니까/보호 널 (NULL)이 누락 된 것 같습니다? – fiso

답변

2

내가

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