我不得不使用createSQLQuery
將值插入帶有使用hibernate的Identity列(第一列和主鍵)的表中。使用休眠類不是一種選擇,因爲這些表是爲添加到系統中的每個客戶實時創建的。我已經運行了查詢併成功插入到表中。然後我執行一個「select scope_identity()」,它總是返回null。 「select @@ Identity」起作用,但不能保證是正確的。我也嘗試追加「select scope_identity()」到插入查詢。然後我試圖query.list()
和query.uniqueResult()
這兩個拋出的休眠異常「無結果...」在休眠時使用createSQLQuery選擇scope_identity()
Session session = DatabaseEngine.getSessionFactory().openSession();
String queryString = "insert into table1 (dataid) values (1)"
SQLQuery query = session.createSQLQuery(insertQueryString);
query.executeUpdate();
query = session.createSQLQuery("select scope_identity()");
BigDecimal entryID = (BigDecimal)query.uniqueResult();
這個簡單的例子表的定義如下:
"CREATE TABLE table1 (EntryID int identity(1,1) NOT NULL," +
"DataID int default 0 NOT NULL, " +
"PRIMARY KEY (EntryID))";
有沒有辦法,我缺少使用scope_identity()與createSQLQuery
?