我被迫使用
简单的表格示例定义如下:
有没有我忽略的方法可以在
createSQLQuery
来通过hibernate向具有Identity列(第一列和主键)的表中插入值。由于为每个添加到系统中的客户创建了表,因此不能使用hibernate类。我运行了查询并成功地将其插入表中。然后执行"select scope_identity()",但总是返回null。"select @@Identity"可以工作,但不能保证是正确的。我还尝试将"select scope_identity()"附加到插入查询中。然后我尝试了query.list()
和query.uniqueResult()
,它们都抛出了hibernate异常"No Results ..."。 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))";
有没有我忽略的方法可以在
createSQLQuery
中使用scope_identity()
?