web-dev-qa-db-ja.com

Hibernate:アノテーションでカスケードを使用するには?

Hibernateでカスケードとアノテーションをどのように使用できますか?

しかし、私は疑問を抱き続けます:

私はこの状況にあります:

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

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

session.save(package)を実行しようとすると、エラーが発生します。商品やパッケージを保存したくない。初期化してパッケージオブジェクトに設定したいだけです。

それは可能ですか?

14
Valter Silva

この問題について非常に明確な hibernateのドキュメント を参照してください。たとえば、次のように使用できます。

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

または

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

HibernateネイティブAPIを使用する場合、カスケードにはhibernateのアノテーションを使用する必要があります。

@Cascade(CascadeType.SAVED_UPDATE)

次にsave()メソッドを呼び出しますが、アノテーションを使用して、JPAのメソッドpersist()を呼び出す必要があります。

1
Hamdi Baligh