1
이 메서드를 실행 중입니다. 나는이 프로그래밍 언어에 새로운 오전과 내가이 오류를 해결하는 방법에 대한 충분한 생각이없는하위 쿼리가 최대 절전 모드에서 둘 이상의 행을 반환합니다.
java.sql.SQLException: Subquery returns more than 1 row.
:
@Override
public Page<User> searchUsers(String name, int userTypeDefId, int accountTypeDefId,
final PageSetting pageSetting) {
HibernateCallback<Page<User>> hibernateCB = new HibernateCallback<Page<User>>() {
@Override
public Page<User> doInHibernate(Session session) throws HibernateException,
SQLException {
Criteria c = session.createCriteria(User.class);
DetachedCriteria dc = DetachedCriteria.forClass(UserType.class);
dc.setProjection(Projections.property("user"));
c.add(Subqueries.propertyEq(UserField.id.name(), dc));
c.addOrder(Order.asc(UserField.userName.name()));
Page<User> ret = getAll(c, pageSetting);
for (User user : ret.getData()) {
getHibernateTemplate().initialize(user.getUserAccountTypes());
getHibernateTemplate().initialize(user.getUserTypes());
}
return ret;
}
};
return getHibernateTemplate().execute(hibernateCB);
}
그리고이 오류를있다.
JB는 정말 감사합니다. 나는 당신이 제안한 HQL 방법을 사용할 것이다. –