我需要一個簡單的序列,它會給我遞增的整數,我稍後將其用作字符串的一部分。休眠不能找到序列
我做了使用postgresql
命令行順序:
CREATE SEQUENCE my_seq
INCREMENT BY 1
序列存在,我可以從PostgreSQL的命令行查詢,但我想用hibernate
得到的值:
Query query = session.createSQLQuery("select nextval(:sequence);");
query.setParameter("sequence", "my_seq");
Long nextVal=((BigInteger)query.uniqueResult()).longValue();
而且我得到這個異常:
ERROR: relation "my_seq" does not exist
序列值不代表任何實體的屬性。我只需要它們來存儲登錄次數,但我不會將登錄名存儲爲實體。
編輯:我把它加入該計劃名稱查詢工作:
String query1 = "select nextval(myscheme.my_seq)";
Query query = session.createSQLQuery(query1);
我想不通爲什麼它需要的方案雖然,因爲myscheme
已經默認設置,所有其他查詢沒有指定方案工作良好。如果任何人都可以說出一些亮點,我會接受它的答案。
如果你在數據庫客戶端本身運行它,那麼'select nextval(my_seq)'工作嗎? – Elbek 2014-10-03 13:43:17
是的,它返回遞增的值。 – 2014-10-03 13:44:09
這個鏈接可能會幫助你看看http://stackoverflow.com/questions/6386888/get-next-sequence-value-from-database-using-hibernate – 2014-10-03 14:42:26