我正在使用 Hibernate 4.0.1.Final。我有一个带有唯一约束列的表……</p>
@Entity
@Table(name = "cb_contract",
uniqueConstraints = {@UniqueConstraint(columnNames={"ORDER_ID"})}
)
public class Contract {
...
@Column(name = "ORDER_ID")
private String orderId;
目前,如果我尝试使用以下方法保存两个具有相同订单 ID 列值的对象...
protected void saveOrUpdate(Object obj) {
final Session session = sessionFactory.getCurrentSession();
session.saveOrUpdate(obj);
}
保存第二个实例时,我收到“org.hibernate.exception.ConstraintViolationException:完整性约束违规:唯一约束或索引违规”异常。有没有一种方法可以让 Hibernate 根据唯一列保存或替换对象,或者我是否需要先搜索对象,如果它存在则删除它,然后重新插入该对象?