私はHibernate4.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列に同じ値を持つ2つのオブジェクトを保存しようとすると...
protected void saveOrUpdate(Object obj) {
final Session session = sessionFactory.getCurrentSession();
session.saveOrUpdate(obj);
}
2番目のインスタンスを保存すると、「org.hibernate.exception.ConstraintViolationException:整合性制約違反:一意の制約またはインデックス違反」例外が発生します。一意の列に基づいてHibernateにオブジェクトを保存または置換させる方法はありますか、または最初にオブジェクトを検索し、オブジェクトが存在する場合は削除してから、再挿入する必要がありますか?