0
私は、スキーマmyschemaの下にmytableという名前のPostgres 9.5.5テーブルを持っています。主キーはありません。テーブルが作成されたときに追加できませんでした。これは、テーブルのidカラムに値が重複している行を引き起こしています。このテーブルへの唯一のアクセスポイントは、Hibernate 4.3.10 Finalエンティティクラスのsave()、update()およびdelete()メソッドによるものです。誰も私が知っている限り手動でデータベースを更新していません。コードのどの部分がID列の重複値をテーブルに送信していますか?エンティティクラスは次のようになります -休止状態の重複キー
以下@Entity
@Table(name = "mytable", schema = "myschema")
public class MyTable implements Serializable {
/** Id. */
@Id
@GeneratedValue(generator = "myschema.mytable_seq", strategy = GenerationType.AUTO)
@SequenceGenerator(name = "myschema.mytable_seq", sequenceName = "myschema.mytable_seq")
@Column(name = "id", unique = true, nullable = false)
private int id;
のpostgresのシーケンスの定義である -
CREATE SEQUENCE myschema.mytable_seq
INCREMENT 1
MINVALUE 1
MAXVALUE 9223372036854775807
START 765
CACHE 1;
休止状態コードはこのような何か(のSessionFactoryがorg.hibernate.SessionFactoryのautowiredインスタンスである -
@Repository
public class HBMyTableDao extends HBAbstractDAO<MyTable> implements MyTableDao {
public void save(MyTable model) {
sessionFactory.getCurrentSession().save(model);
}
public void saveOrUpdate(MyTable model) {
sessionFactory.getCurrentSession().saveOrUpdate(model);
}
public void update(MyTable model) {
sessionFactory.getCurrentSession().update(model);
}
public void delete(MyTable model) {
sessionFactory.getCurrentSession().delete(model);
}
}
に自動生成列を追加することができますhttps://docs.jboss.org/hibernate/orm/4.3/manual/en-US/html_single/#mapping-declaration-id
を参照してくださいあなたは、エンティティを保存/更新のために使用したコードのスニペットを投稿してもらえますか? –
が元の投稿に追加されました...ありがとう –