web-dev-qa-db-fra.com

Hibernate: Comment utiliser la cascade dans l'annotation?

Comment utiliser la cascade et les annotations en veille prolongée?

Mais je reste avec un doute:

J'ai cette situation:

public class Package(){
  @OneToOne(cascade=CascadeType.PERSIST)
  private Product product;

  @OneToOne(cascade=CascadeType.PERSIST)
  private User user;
  ..
}

Lorsque j'essaie de session.save(package), une erreur se produit. Je ne veux pas enregistrer le produit et le package. Je veux juste les initialiser et les placer dans mon objet package.

Est-ce possible?

14
Valter Silva

Voir la documentation d'hibernation qui est très claire sur ce problème. Par exemple, vous pouvez utiliser par exemple,

@Cascade(CascadeType.PERSIST)
private List<Object> obj;

ou

@OneToMany(cascade = CascadeType.PERSIST)
private List<Object> obj;
15
Johan Sjöberg

Si vous utilisez l'API native hibernate, vous devez utiliser l'annotation de hibernate pour cascade et c'est:

@Cascade(CascadeType.SAVED_UPDATE)

alors vous appelez la méthode save () mais avec votre annotation, vous devez appeler la méthode persist () du JPA

1
Hamdi Baligh