【发布时间】:2014-03-12 08:24:34
【问题描述】:
在我的应用程序中,我使用 JPA(使用 Hibernate 作为 JPA 提供程序)访问 DB。当我尝试运行查询时,系统为我提供了空的结果列表。但是当我运行相同查询的 SQL 表示(取自日志)时,它运行良好并为我提供了正确的结果。
有人可以帮我理解这里可能出现的问题吗?
【问题讨论】:
-
您可以让 JPA 记录其生成的 SQL 以验证它确实在运行相同的查询。对于 Hibernate,您将使用
<property name = "hibernate.show_sql" value = "true" />。此外,双重/三重检查您的应用正在查询与您手动查询相同的数据库。 -
我通过将 hibernate.show_sql 设置为 true 获得了 SQL 字符串。它运行良好,给了我想要的结果。另外,我很确定我正在访问同一个数据库,因为我正在使用自己的用户访问数据库,并且我没有在任何其他数据库上创建我的用户 :-)
-
我会更进一步:尝试设置 log4jdbc 以查看填充了所有参数的 100% 保证正确的 SQL 查询。在基础上,它将是一个普通的 JDBC 查询数据库,因此不可能在两个不同的环境中运行相同的查询得到不同的结果集。
标签: java hibernate jpa jpa-2.0 spring-data