2013-12-11 74 views
-1

我試圖檢查序列的下一個val。squence的下一個val總是空的

這裏是方法:

public Long getCodeCommercialOffer(final String seq) { 
    final Session session = (Session) getEntityManager().getDelegate(); 
    Query q= (Query) session.createQuery("SELECT " + seq + ".nextval FROM dual"); 
    return (Long) q.getSingleResult(); 
} 

爲什麼回報總是空?

+0

從這樣的序列中選擇似乎很奇怪。爲什麼在將數據插入系統時直接引用序列,並使用RETURNING獲取分配的值? –

回答

0

謝謝你的回答,最後我找到了解決辦法。

問題是演員,我用BigDecimal而不是長的替換它

1

我不確定你輸入的seq名稱是什麼值。您可能需要將模式名稱追加到序列的前面(例如:mySchema.sequenceName)。我建議您打印出您正在嘗試運行的SQL語句,在數據庫查詢工具(例如TOAD)中單獨運行該語句,調整SQL以使其運行,然後將其放回代碼中。

相關問題