Hibernate: Как использовать каскад в аннотации? - PullRequest
12 голосов
/ 01 марта 2011

Как я могу использовать каскад и аннотации в спящем режиме?

Но я остаюсь с сомнением:

У меня такая ситуация:

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

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

Когда я пытаюсьsession.save(package), произошла ошибка.Я не хочу сохранять товар и упаковку.Я просто хочу инициализировать и установить их в свой объект пакета.

Возможно ли это?

Ответы [ 2 ]

14 голосов
/ 01 марта 2011

См. документацию по спящему режиму , которая очень ясно говорит об этой проблеме. Например, вы можете использовать, например,

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

или

@OneToMany(cascade = CascadeType.PERSIST)
private List<Object> obj;
1 голос
/ 15 октября 2012

Если вы используете собственный API hibernate, то вы должны использовать аннотацию hibernate для каскада:

@Cascade(CascadeType.SAVED_UPDATE)

, тогда вы вызываете метод save (), но с вашей аннотацией вы должны вызватьметод persist () из JPA

...