org.hibernate.Session.save () запускает вставку БД - PullRequest
0 голосов
/ 29 января 2020

У меня проблема в том, что моя сущность вставлена ​​в БД без вызова "flu sh". Может быть, у кого-то есть идея, при каких условиях сессия session.ave немедленно запускает вставку БД?

Я думаю, что единственная интересная часть моего объекта, которую я хотел бы сохранить (но не сохранить (!)) -

  @javax.persistence.Id
  @javax.persistence.GeneratedValue(strategy = GenerationType.IDENTITY)
  @javax.persistence.Column(name = "EM_id")
  private Long     id;

  @javax.persistence.Version
  @javax.persistence.Column(name = "version")
  private int      version;

1 Ответ

0 голосов
/ 29 января 2020

Вы обрабатываете транзакции вручную? Если это так, вы должны начать транзакцию до вызова save(). Зафиксируйте транзакцию после вызова save(). Я полагаю, что не запуск транзакции мог быть причиной этого.

Если это не так, экономия без flush() происходит из-за режима hibernate по умолчанию при гриппе sh, равном AUTO. Попробуйте изменить его на COMMIT.

...