我正在尝试开发一种简单的方法来在我的应用程序上执行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只是打印[]。 我调试了,会话工作。我测试过更改表的名称,实际上它表示"表不存在"。我也尝试过和更新语句,没有错误但它什么也没做。 谁能告诉我我需要做什么?
谢谢!
答案 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[]>