2012-12-18 2 views
0

J'ai lu beaucoup de sujets et de forums sur @OneToMany mais malheureusement, cela n'a pas aidé.JPA 2.0 hobernate 4+ @OneToMany ensemble unidirectionnel

Par exemple, nous avons des entités comme celles-ci:

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

... 
} 

Et maintenant im essayant de sauver première fois objet Manager (avec pas vide, les deux ensembles)

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

En retour je vois comment hibernate tente faire des insertions, mais il n'y a pas de mise à jour pour les travailleurs et les assistants. Lorsque j'obtiens Manager de DB, les deux listes sont vides (null). Qu'est-ce qui me manque ici?

+0

Avez-vous les accesseurs que les partenariats public/protégés? – fiso

Répondre

2

On dirait que je manquais annulable

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