Я просто пытаюсь выполнить обновление объекта.Однако hibernate пытается 2 оператора SQL, один для правильного обновления, а второй - для нежелательного обновления одного только идентификатора до нуля, что приводит к сбою приложения.
Я использую Spring Data вместе с Hibernate и при выполнении обновленияобъекта, я вижу, что ожидаемое обновление SQL выполняется, однако при запуске приложения с SQL Server предпринимается попытка последующего обновления, которое выполняет следующие действия:
update my_table set id=null where id=?
Это, очевидно, не удается.
Cannot update identity column 'ID'.
Запуск того же кода с H2 Я не вижу, это второе обновление запущено.
Есть идеи, что может быть причиной этого поведения?
Я расширяю JpaRepository и использую по умолчаниюsave ().
Вот фрагмент моей сущности:
@Table(name = "MY_TABLE")
@Entity
public class MyEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column
private String anotherValue;
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.LAZY)
@JoinColumn(name="id")
private List<ChildEntity> children = new ArrayList<>();
// getters, builder, private default constructor ...
Фрагмент, строящий мою сущность:
MyEntity.newBuilder()
.withId(id)
.withAnotherValue(valueUpdate)
.build();
Хранилище:
public interface MyRepository extends JpaRepository<MyEntity, Long>
Экономия:
myRepository.save(myUpdatedEntity);