显然,Hibernate模板查询将字符串参数“tableName”注入带引号的查询中。这将导致SQL语法语句错误。
如何将表名作为查询参数之一?
例如,以下代码由于表名而无法正常工作:
SQLQuery query = session.createSQLQuery("SELECT ID FROM :tableName");
query.setFlushMode(FlushMode.MANUAL);
query.setReadOnly(true);
query.setParameter("tableName", "STUDENT");
List<Object[]> list = query.list();