JPA序列生成器给出Null值

时间:2015-07-28 13:03:37

标签: java spring hibernate jpa

我在我的应用程序中使用JPA而不是hibernate。我在我的一个域对象中有序列生成器,如下所示: -

@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="CPAY_PE_FORMAT_HTML_SEQ")
@SequenceGenerator(name="CPAY_PE_FORMAT_HTML_SEQ",sequenceName="CPAY_PE_FORMAT_HTML_SEQ")

但是,如果我在我的数据库中查询以下查询,它会给我空值。

select CPAY_PE_FORMAT_HTML_SEQ.nextval from dual;       
它给了我正确的价值。请帮忙。

1 个答案:

答案 0 :(得分:1)

我遇到了类似的问题。为了解决这个问题,我必须将 allocationSize 添加到序列生成器。

@SequenceGenerator(名称=&#34; IMPORT_RUN_ID_GEN&#34;,sequenceName =&#34; SEQ_IMPORT_RUN_ID&#34; ,<强> allocationSize = 1

默认情况下,alllocation size是50.您必须在DB端声明INCREMENT BY 50,或者DB中的任何增量值都提供与sequ​​enceGeenerator中的allocationsize相同的值或 allocationSize = 1 将在这两种情况都是因为每次需要新ID时,hibernate都会在DB中触发查询。

请尝试在sequenceGenerator中添加 allocationsize = 1 ,然后再运行。