执行插入后是否可以检索autoinc字段:
String queryString = "insert into " + String.format("table%04d", id) +
"(sectionid, topicid, dc) values (" + entry.getSectionId() +
", " + entry.getTopicId() + ", " + entry.getDc() + ")";
SQLQuery query = session.createSQLQuery(queryString);
query.executeUpdate();
该表有四个字段
eid - autoinc
sectionid - int
topicid - int
dc - int
请帮帮我
答案 0 :(得分:0)
不幸的是,通过使用SQL查询而不是HQL,您绕过了Hibernate的大部分数据库无关的好处。如果您绝对不能使用HQL,则必须实现自己的数据库特定实现。要做到这一点,首先需要从Hibernate获取JDBC驱动程序类:
How to get database metadata from entity manager
一旦有了驱动程序类,就可以根据该类进行特定于数据库的查询。由于您无法修改驱动程序类以实现具有特定get autoinc查询的接口,因此我在以下链接中推荐Nico的建议:
在驱动程序类上实现switch语句后,您可以选择是否实现MYSQL,MSSQL或其他autoinc查询。