Java Hibernate集参数
我试图使用Hibernate执行一个简单的查询,但是它给出了错误。我在网上搜索,参数传递语法似乎正确,但不知道为什么会发生这种情况 代码Java Hibernate集参数,java,sql,postgresql,hibernate,Java,Sql,Postgresql,Hibernate,我试图使用Hibernate执行一个简单的查询,但是它给出了错误。我在网上搜索,参数传递语法似乎正确,但不知道为什么会发生这种情况 代码 Session session = analyticsSQLSession.getSession(); try { session.beginTransaction(); Query query = session.createNativeQuery("select * from :table
Session session = analyticsSQLSession.getSession();
try {
session.beginTransaction();
Query query = session.createNativeQuery("select * from :tableName");
query.setParameter("tableName", tableName);
List resultList = query.getResultList();
session.close();
System.out.println();
return resultList;
} catch (Exception ex) {
throw ex;
} finally {
session.close();
错误
org.postgresql.util.PSQLException:错误:在“$1”处或附近出现语法错误
在这里,你必须做一些像这样的操作,试试这个,让我知道
Session session = analyticsSQLSession.getSession();
try {
session.beginTransaction();
Query query = session.createNativeQuery(tableName("tableName"));
//query.setParameter("tableName", tableName);
List resultList = query.getResultList();
session.close();
System.out.println();
return resultList;
} catch (Exception ex) {
throw ex;
} finally {
session.close();
public static String tableName(String tableName) {
return "SELECT * FROM " + tableName;
}
在这里,你必须做一些像这样的操作,试试这个,让我知道
Session session = analyticsSQLSession.getSession();
try {
session.beginTransaction();
Query query = session.createNativeQuery(tableName("tableName"));
//query.setParameter("tableName", tableName);
List resultList = query.getResultList();
session.close();
System.out.println();
return resultList;
} catch (Exception ex) {
throw ex;
} finally {
session.close();
public static String tableName(String tableName) {
return "SELECT * FROM " + tableName;
}
不能将表名作为参数提供。@jarlh?如果我的表名在每次查询中都要更改,我该如何实现它呢?您需要事先构建查询,至少对于表名是这样。这不是您应该如何使用hibernate的。nativeQuery用于辅助用途,entityManager.findAll将为您执行该查询。您还需要将所有表映射为类。简短的故事:要么用另一个框架编写SQL,要么学习hibernate教程。你不能提供表名作为参数。@jarlh,真的吗?如果我的表名在每次查询中都要更改,我该如何实现它呢?您需要事先构建查询,至少对于表名是这样。这不是您应该如何使用hibernate的。nativeQuery用于辅助用途,entityManager.findAll将为您执行该查询。您还需要将所有表映射为类。短篇故事:要么用另一个框架编写SQL,要么学习hibernate教程。