使用JPA生成的entity,使用注解方式标注,id生成方式为Oracle数据库的sequence。
但在使用过程中,sequence值为228,插入后的id却为11300。且每次插入数据,id值增加50,sequence值仍然增加1。
在使用http://blog.youkuaiyun.com/mypop/archive/2011/01/20/6155649.aspx这个方法查看日志后,发现hibernate在取出sequence后,又使用SequenceHiLoGenerator类进一步生成id。
解决方式参照http://in3040.blog.163.com/blog/static/11670244320098281147597/,注解@SequenceGenerator中增加一项“allocationSize=1”,即:
@SequenceGenerator(name="ID_SEQ",sequenceName="IDSEQ",allocationSize=1)
这样id值与sequence取出值一致,且不再增50。
JPA与Oracle Sequence同步问题
探讨了在使用JPA和Oracle数据库时遇到的sequence与id不同步的问题,并通过调整SequenceGenerator配置解决了这一问题。
92

被折叠的 条评论
为什么被折叠?



