Я использую Hibernate 4.0.1.Final. У меня есть таблица с уникальным столбцом ограничения...
@Entity
@Table(name = "cb_contract",
uniqueConstraints = {@UniqueConstraint(columnNames={"ORDER_ID"})}
)
public class Contract {
...
@Column(name = "ORDER_ID")
private String orderId;
В настоящее время, если я попытаюсь сохранить два объекта с одинаковым значением для столбца идентификатора заказа, используя метод ниже...
protected void saveOrUpdate(Object obj) {
final Session session = sessionFactory.getCurrentSession();
session.saveOrUpdate(obj);
}
Я получаю исключение «org.hibernate.exception.ConstraintViolationException: нарушение ограничения целостности: уникальное ограничение или нарушение индекса» при сохранении второго экземпляра. Есть ли способ заставить Hibernate сохранять или заменять объекты на основе уникального столбца, или мне нужно сначала найти объект, удалить его, если он есть, а затем повторно вставить его?