Hibernate上的本机SQL查询的空结果

时间:2018-05-23 10:42:03

标签: sql hibernate

我正在尝试开发一种简单的方法来在我的应用程序上执行sql查询,这样我就可以使用本机sql来处理某些事情。 这是我的方法:

Session session = getReportCsvMgr().getHibernateSession();
session.beginTransaction();
String sql = String.format("select USER_ID from Users where accountid = 'testaaa'");
Object o = session.createSQLQuery(sql).list();
System.out.println(o.toString());

session.close();

我没有得到任何错误,但不知何故,对象o是空的,而sysout只是打印[]。 我调试了,会话工作。我测试过更改表的名称,实际上它表示"表不存在"。我也尝试过和更新语句,没有错误但它什么也没做。 谁能告诉我我需要做什么?

谢谢!

2 个答案:

答案 0 :(得分:0)

更改行

Object o = session.createSQLQuery(sql).list();

为:

List<Integer> o = session.createSQLQuery(sql).list();

USER_ID是整数或:

List<String> o = session.createSQLQuery(sql).list();

如果USER_ID是字符串。

此外,在查询中,您没有传递参数,因此您可以更改:

String sql = String.format("select USER_ID from Users where accountid = 'testaaa'");

简单:

String sql = "select USER_ID from Users where accountid = 'testaaa'";

答案 1 :(得分:0)

如果只返回一行或将返回类型更改为.uniqueResult()

,请使用.list()代替List<Object[]>