私のDAOメソッドの1つには、次のメソッドが含まれています。
@Override
public boolean isAvailable(String code) {
Criteria criteria = getSession().createCriteria(MyEntity.class);
cr.add(Restrictions.eq("code", code).ignoreCase());
cr.setProjection(Projections.rowCount());
Long rowCount = (Long) cr.uniqueResult();
return (rowCount > 0) ? true : false;
}
最後の行で、次の例外がスローされます。
org.hibernate.exception.DataException: could not execute query
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:102)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
at org.hibernate.loader.Loader.doList(Loader.java:2452)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2192)
at org.hibernate.loader.Loader.list(Loader.java:2187)
at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:119)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1706)
at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:347)
at org.hibernate.impl.CriteriaImpl.uniqueResult(CriteriaImpl.java:369)
はcode
、このテーブルの主キーです。Hibernate はコンソールで select コマンドを生成しています。データベースの SQL コンソールでこの select コマンドをチェックすると、正しい値が返されます。それで、私は何を間違っていますか?