私はHibernateで非常に新しいです。私はJPAでHibernateを使用しています。私は注釈付きエンティティクラスと、そのエンティティクラスに関連するテーブルを持っています。Hibernateのキー 'PRIMARYの重複エントリ' 59 'を削除します
@Entity
public class Test implements Serializable {
@Id
@GenericGenerator(name="inc" , strategy="identity")
@GeneratedValue(generator="inc")
private int id;
private String address; // setter getter and constructor
}
このエンティティを保存するときは、データをdbに挿入します。しかし、アプリケーション実行中に別のアプリケーションが同じテーブルにデータを挿入しています。私のアプリケーションがデータを保存しようとすると、キー 'PRIMARY'例外の重複エントリ '59'が生成されます。だから私はデータを挿入し、アプリケーションレベルではなくデータベースレベルでIDを生成するジェネレータを使用したいと思います。識別子は自分のエンティティに保存する必要があります。
を見つけたことができます。しかし、エンティティを挿入する前に毎回max(id)を得ることができるジェネレータが必要です。 Bczそれかもしれない、誰かが手動でテーブルにデータを挿入します。その時、テーブルジェネレータも失敗します。親切に私を導く。 –
誰かが直接テーブルを更新する場合は、手動でIDを管理する必要があります。つまり、レコードを挿入する前に最大IDを取り出して+1してください。 –