根据最新的Hibernate 文档第 17.3 节,这应该有效:
List<Person> persons = session.createNativeQuery(
"SELECT * FROM Person", Person.class)
.getResultList();
我有一个几乎相同的查询,但我遇到了一个异常:
java.sql.SQLException: Invalid object name 'Person'
我正在使用hibernate-core-5.2.10.FINAL。在单步执行源代码之后,它永远不会像普通 HQL 查询那样分支查看实体图。
还有人看到这个吗?我可以为好奇的人发布更多详细信息,并在我继续调试时添加更多内容......
在将 Hibernate 降级到 5.0.12 后,我运行了相同的查询,结果相同。虽然,在 Hibernate 5.0 中,会话中没有“nativeQuery”方法,但它是“createSQLQuery”,它创建了一个“SQLQuery”对象。Hibernate 5.0 用户指南第 17.3 节也说了同样的话:
List<Person> persons = session.createSQLQuery(
"SELECT * FROM person" )
.addEntity( Person.class )
.list();