JPAとHibernateを使用してテーブルに接続し、データを挿入しています。私はテーブルがあると言う:ID、名前と住所の3つの列を持つユーザー。私は同じもののためのエンティティクラスを持って、私は単にEntityManagerのオブジェクトを使用し、私のための魅力のように動作するデータベース内のデータを保持するデータを挿入します。ローを挿入する前にPostgresテーブルの既存の値を確認する
ここでは、私が永続化している値がすでに存在するかどうかを確認するシナリオがあります。その場合、エラーを記録する必要があります。現在私がやっていることは、手動でテーブルから行をロードし、同じ値が存在するかどうかを手動でチェックすることです。これは、3つの列しか持たないサンプル表(User)ではかなり簡単です。しかし、もし私が30列のテーブルを持っていたら?
1つの条件に基づいて手動でデータをロードし、他の列をチェックするか、それを行うためのより簡単な方法がありますか?
、オブジェクトが存在する場所にチェックするために、専用のSQLを記述します重複行を許可しないようにテーブル制約を使用してください。 – Kayaman
+1に@Kayaman、Db制約を使用します。 else SQL/hqlクエリが唯一のオプションです。 –
テーブルの一意の列のサブセットを検索し、それぞれの制約を適用します。 - あなたの例にとどまるために、たくさんの列を持つ 'users'テーブルがあるとしましょう。 'email'カラムが同じである2つの別々の行を許可することはほとんどありませんが、' favourite_color'が違うとしましょう。 – pozs