0
複合プライマリ・キーを持つoracle DB表を更新するために、primefaces 3.2のセル内編集コンポーネントを使用しています。ユーザーは、主キーの値を編集することができるはずですが、私は複合プライマリ・キーを持つ表のセル内編集プライム・インタフェース
em.merge(entity);
を使用している場合、このように私は私には合理的に聞こえる次のエラー
Exception [EclipseLink-7251] (Eclipse Persistence Services - 2.3.0.v20110604-r9504): org.eclipse.persistence.exceptions.ValidationException
Exception Description: The attribute [voce] of class [entity.competenze_distaccati.CompetenzeDistaccatiPK] is mapped to a primary key column in the database. Updates are not allowed.
を...得ました。質問は次のとおりです。ユーザーに主キー値も変更できるようにするにはどうすればよいですか? rowEditイベントリスナーが変更された値で呼び出されるため、削除挿入を実行する元のレコードがどれか分かりません。
あなたのアドバイスを使っても、ユーザーはまだpkを変更することができましたが、変更されたレコードのリストはすぐにdbにコピーされません。このようにして、私はコミットする:listOfRecordToRemove = listFromDB.removeAll(listEdited)while listOfRecordToInsert = listEdited.removeAll(listFromDB)。更新するレコードのみを知るために、私はrowEditイベントリスナーによって設定されたHashSetを持っています。それは私のために働いています。 – maxqua72