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