Grails应用程序未正确使用序列中的下一个值

时间:2019-02-01 09:36:26

标签: grails gorm grails-3.0 grails3

我有一个Grails3应用程序,并且想要从用于测试的幼稚增量ID生成切换到来自数据面的序列(我正在使用Oracle 12c)。所以我有这样的代码:

   static mapping = {
        sort 'name'
        version false
        id column: 'CONFIGID', name:'id', generator:'sequence', params:[sequence: 'CONFIG_API_SEQ']
    }

脚手架工作得很好,但是我为新条目获取的ID值与我期望的不一样-例如,上述序列的LAST_NUMBER现在为161,而新条目为141, 142、143等。根据我的阅读,Grails在提供外部序列时,默认情况下应使用nextVal,因此我希望它与select CONFIG_API_SEQ.nextVal as seq from dual;查询等效,但看起来并非如此。为什么会这样?

我也尝试过使用不同的生成器值或明确声明defaultValue,但下面列出的所有内容均未更改其行为,144、145等序列继续进行(而不是162、163 ...):

  • id column: 'CONFIGID', name:'id', generator:'native', params:[sequence: 'CONFIG_API_SEQ'], defaultValue: "nextval('CONFIG_API_SEQ')"
  • id column: 'CONFIGID', name:'id', generator:'native', params:[sequence: 'CONFIG_API_SEQ']
  • id column: 'CONFIGID', name:'id', generator:'assigned', params:[sequence: 'CONFIG_API_SEQ']

0 个答案:

没有答案