2012-03-07 77 views
0

私のテーブルにはID、都市、地区の3つの列があります。Hibernate、重複を避ける方法は?

私のウェブサービスは、カップル(市、区)のリストを入力します。私はカップル(市、区)の重複を避ける必要があります。

どのように私は、この結果を達成することができますか? IDが異なるため、すべてのレコードが常に異なるように見えるため、session.saveOrUpdate()を使用できません。

私を助けてください。

ありがとうございます。

+0

最初に行うべきことは、テーブルに制約を追加することです: 'CONSTRAINT city_district_unique UNIQUE(city、district)'。正確な構文は、使用しているデータベースによって異なります。 –

+0

都市と地区のプロパティからなる複合キーを使用することもできます。 – xea

答えて

2

コメントは、あなたが

CONSTRAINT city_district_unique UNIQUE (city, district) 

フィールドのUNIQUE制約を作成する何をすべきかを示唆しています。あなたはHibernateでテーブルを作成する場合これは、JPAのアノテーションで行うことができます

@Table(name = "yourtable", uuniqueConstraints = {@UniqueConstraint(columnNames = "subject"), ... }) 

、あなたは上記の制約の違反からの例外をキャッチしなければならないし、挿入を再実行しているように、適切にそれを扱う挿入パラメータを変更したり、まったく無視したりします。さらに、あらかじめ無効な挿入を避けるために、Hibernateに到達する前にデータをチェックしてください。

+0

1)テーブル作成後に行うことは可能ですか? 2)構文に関するMYSqlのマニュアルが見つかりません – Bagbyte

関連する問題