아래는 제가 아래에 같은 기준을 만들 경우 내가 문제최대 절전 모드 기준
//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
}
에 직면하고 어디에 내 코드와 매우 유사 같은 코드 : -
B b = new B();
b.setBId(1l);
C c = new C();
c.setCId(2l);
Criteria criteria = getSessionFactory().getCurrentSession().createCriteria(A.class,"a");
criteria.add(Restrictions.eq("a.bid", b));
criteria.add(Restrictions.eq("a.cid",c));
A result = (A) criteria.uniqueResult();
return result;
나는이 예외 이하지고
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;
했다.
참고 : 모든 클래스에 대해 최대 절전 모드 매핑을 수행하고 있습니다. 내가 발견
솔루션은 클래스 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