が、私は以下のような基準を作成する場合は、私が問題にはコンポジットIDに基準以下
//mapped to Table B
class B implements Serializable {
//Primary key bId
private Long bId;
//Getter and setter for bId;
}
//Mapped to table C
class C implements Serializable {
//Primary key bId
private Long cId;
//Getter and setter for cId;
}
//mapped to Table A (Which has composite key fBid and fCid)
class A{
//Composite primary key
private B bid;
private C cid;
//getter and setter for B and C
//Other fields
}
に直面しています私のコードに非常によく似て同じコードですが休止状態例外の下になって
org.postgresql.util.PSQLException:ERROR:演算子が存在しません:整数=はbytea
私はBとCクラスのオブジェクトを持つ別のクラスBCを作成し、これをクラスAで複合キーとして使用しました。その後、任意のヘルプは理解されるであろう
同じエラーそれでも
Criteria criteria = getSessionFactory().getCurrentSession().createCriteria(A.class,"a");
criteria.add(Restrictions.eq("a.BC", bc));
A result = (A) criteria.uniqueResult();
return result;
をしました。
注: - すべてのクラスに対してhibernate xmlマッピングを実行しています。私は 発見した
ソリューションは、クラスA以下のように変更されました: -
class A{
private BC bc;
//getter and setter
}
where BC
class BC{
private B b;
Private C c;
//getter and setters
}
Criteria criteria = getSessionFactory().getCurrentSession().createCriteria(A.class,"a");
criteria.add(Restrictions.eq("bc.b", b));
criteria.add(Restrictions.eq("bc.c",c));
A result = (A) criteria.uniqueResult();
return result;
次のソリューションは私のために働いた – amRika