У меня есть сущность с @EmbeddedId.В классе id есть несколько полей, одним из которых является Long id с последовательностью типа Generation.Проблема возникает, когда я пытаюсь вставить экземпляр этой сущности, не устанавливая идентификатор в встроенный идентификатор (который должен быть вставлен здесь из последовательности).
org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
Когда для идентификатора в этом внедренном идентификаторе установлено любое значениеВставка прошла успешно.
Что я могу сделать, чтобы это заработало?
Редактировать: код
@Entity
@Table(name = "TestIds")
public class TestIds implements Serializable {
@EmbeddedId
private TestId testId;
public TestIds(TestId testId) {
this.setTestId(testId);
}
public TestId getTestId() {
return testId;
}
public void setTestId(TestId testId) {
this.testId = testId;
}
}
@Embeddable
public class TestId implements Serializable {
private static final long serialVersionUID = 1L;
@GeneratedValue(strategy=GenerationType.AUTO, generator="my_entity_seq_gen")
@SequenceGenerator(name="my_entity_seq_gen", sequenceName="MY_ENTITY_SEQ")
@Column(name = "column_name")
private Long id;
public TestId() {
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
}
Я выполняю
TestIds a = new TestIds(new TestId());
Session session = sessionFactory.getCurrentSession();
session.save(a);
session.flush();
org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
Caused by:
java.sql.BatchUpdateException: Batch entry 0 insert into TestIds (column_name) values (NULL) was aborted