Java 当SQL等效项不存在时,HQL返回null
所以我有一个用Java编写的HQL代码Java 当SQL等效项不存在时,HQL返回null,java,sql,hibernate,hql,oracle-sqldeveloper,Java,Sql,Hibernate,Hql,Oracle Sqldeveloper,所以我有一个用Java编写的HQL代码 ClassA myAObj = null; myAObj = (ClassA) hs.get(ClassA.class, classId) 这一行执行多次没有问题。但是,在一些主键ID的情况下,HQL返回空值,而myAObj为空。这被认为是奇怪的,因为我使用了控制台的SQL等效脚本并在SQL developer中运行了它,但没有得到空结果 可能的原因是什么?您传递给hs的classId。get(ClassA.class,classId)在您的表记录中不存
ClassA myAObj = null;
myAObj = (ClassA) hs.get(ClassA.class, classId)
这一行执行多次没有问题。但是,在一些主键ID的情况下,HQL返回空值,而myAObj为空。这被认为是奇怪的,因为我使用了控制台的SQL等效脚本并在SQL developer中运行了它,但没有得到空结果
可能的原因是什么?您传递给
hs的classId
。get(ClassA.class,classId)
在您的表记录中不存在(不匹配)
最好调试代码或打印
classId
值,然后验证表中是否存在记录 这正是我所做的,我得到了classId,并在我的数据库中运行它,记录确实存在。只是想知道这意味着我必须清理我的Tomcat服务器,或者其他东西。@bouncingHippo通过禁用hibernate捕获来验证。