org.hibernate.HibernateException:指定された識別子を持つ複数の行が見つかりました:578、クラス:com.hibernate.query.performance.persistenceこれは、0のレコードが返さorg.hibernate.HibernateException:指定された識別子を持つ複数の行が見つかりました
SELECT *
FROM store
WHERE store.store_id = 578;
:.model.Store
データベースには、それはSQLを使用して確認した識別子578と重複している店舗の行を持っていません。
One,に関するその他の質問では、OneToOneマッピング自体に問題がある可能性があることが指摘されています。店舗やスタッフのエンティティは、OneToOne関係を持っていると私はそのようにマッピングされます
スタッフ:
@OneToOne(mappedBy = "manager_staff", cascade = CascadeType.ALL, orphanRemoval = true)
public Store getStore() {
return store;
}
ストア:
@OneToOne
@JoinColumn(name = "manager_staff_id", referencedColumnName = "staff_id", nullable = false)
public Staff getManager_staff() {
return manager_staff;
}
どのようにそれを修正するには?
更新:
例外は、クエリは次のように変更されたときにビットを変更:
Query query = session.createQuery("select c " +
" from Rental r, Customer c join fetch c.address address join fetch address.store store join fetch address.city city " +
" where r.customer = c " +
" and r.returnDate is null");
例外:
org.hibernate.HibernateException: More than one row with the given identifier was found: 2951, for class: com.hibernate.query.performance.persistence.model.Store
データベースへの変更はなかったです。 JProfilerがJPA/Hibernateレコードを捕捉できないため、HQLが正しいかどうかはわかりません。捕捉される唯一のメトリックは、実行されたJDBC接続です。