我有一个持久的类Author
,它有两个字段:int id
、字符串名称
。
问题是每当我以这种方式执行查询时:
Session s = HibernateUtil.getSessionFactory().getCurrentSession();
s.beginTransaction();
Query q = s.createQuery("from Author");
return (Author)q.list().get(0);
它工作正常,并返回一个带有填充字段的 Author 对象。但是每当我尝试在查询中添加条件时,例如:
Session s = HibernateUtil.getSessionFactory().getCurrentSession();
s.beginTransaction();
Query q = s.createQuery("from Author a where a.id=41");
return (Author)q.list().get(0);
我的应用程序崩溃了。这是我在错误堆栈中收到的最上面的错误:
java.lang.reflect.UndeclaredThrowableException
at $Proxy0.createQuery(Unknown Source)
请帮助我,我花了三个多小时,但我还没有找到解决方案。谢谢。
最佳答案
您唯一需要做的就是链接 hibernate 附带的所有 JAR,例如:
antlr.jar
cglib.jar
asm.jar
asm-attrs.jars
commons-collections.jar
commons-logging.jar
hibernate3.jar
jta.jar
dom4j.jar
log4j.jar
并且您的代码应该可以工作。
关于java - where子句中的hql问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1366866/