0
参数
我试图运行这个命令:createSQLQuery,在Hibernate
..
String modelTableName = (model == TableModelType.RING) ? "RING_PLAYERS" : "TOURNY_PLAYERS";
List<Object[]> results = dbs.createSQLQuery("SELECT group_level, COUNT(group_level) FROM :modelTableName WHERE game_id=:gameId GROUP BY group_level")
.addScalar("group_level", Hibernate.INTEGER)
.addScalar("COUNT(group_level)", Hibernate.LONG)
.setString("modelTableName", getModelTableName())
.setInteger("gameId", getGameId())
.list();
它给出了一个例外:
Caused by: java.sql.SQLException: ORA-00903: invalid table name
如果我写 “RING_PLAYERS” 而不是 “:tableModelName”,那么它的工作原理!
我在做什么错误的这个参数?
谢谢。
'getModelTableName()'没有此方法获得你的价值预期? – 2014-12-05 18:20:11
是的。 为了检查createSQLQuery是否正常工作,使用硬编码字符串而不是函数会很有趣。 – Shvalb 2014-12-05 18:47:36
好吧,你是否在静态路试过,如果你的代码风格适合这种情况,或者字符串初始化并在setString方法中使用它? – 2014-12-05 18:54:40