假设我有一个spring + hibernate应用程序可以很好地协同工作。一个表A由应用程序(CRUD)管理。并且可能还有其他程序也会在表A中插入一些数据。所以这就出现了问题。
例如:hibernate将下一个id指向1001(auto_increment),在接收任何数据之前,我使用jar文件将100条记录插入mysql数据库。所以插入的下一个id应该是1101。但是如果现在hibernate接收到一条记录并尝试插入,则会抛出异常:java.sql.BatchUpdateException:Duplicate entry' 1001'关键' PRIMARY'。 能否请你帮忙?提前谢谢!
ps:在hbm.xml中:
<id name="cns_id" column="cns_id" type="long" access="field">
<generator class="increment" />
</id>
答案 0 :(得分:1)
根据API,如果你这样做:
<id name="cns_id" column="cns_id" type="long" access="field">
<generator class="guid" />
</id>
Hibernate应该从数据库中获取ID:
GUID
uses a database-generated GUID string on MS SQL Server and MySQL.