Grails 3.1.9 with spring security ui插件注册失败,id为null时无法生成EntityKey

Grails 3.1.9 with spring security ui插件注册失败,id为null时无法生成EntityKey,grails,spring-security,grails-plugin,Grails,Spring Security,Grails Plugin,我有一个Grails项目版本3.1.9,其中我安装了spring安全核心(v3.1.1)和spring安全ui(v3.0.0.M2)插件 SUI插件已经安装,我可以进入注册/注册页面,输入新用户的详细信息 当我点击“创建你的帐户”按钮时,我得到一个 “id为null时无法生成EntityKey”错误 有人能告诉我如何解决这个问题吗 Caused by: java.lang.IllegalStateException: cannot generate an EntityKey when id is

我有一个Grails项目版本3.1.9,其中我安装了spring安全核心(v3.1.1)和spring安全ui(v3.0.0.M2)插件

SUI插件已经安装,我可以进入注册/注册页面,输入新用户的详细信息

当我点击“创建你的帐户”按钮时,我得到一个 “id为null时无法生成EntityKey”错误

有人能告诉我如何解决这个问题吗

Caused by: java.lang.IllegalStateException: cannot generate an EntityKey when id is null.
at org.hibernate.engine.spi.EntityEntry.getEntityKey(EntityEntry.java:254)
at org.hibernate.event.internal.DefaultEvictEventListener.onEvict(DefaultEvictEventListener.java:95)
at org.hibernate.internal.SessionImpl.fireEvict(SessionImpl.java:1210)
at org.hibernate.internal.SessionImpl.evict(SessionImpl.java:1203)
at org.grails.orm.hibernate.GrailsHibernateTemplate$8.doInHibernate(GrailsHibernateTemplate.java:327)
at org.grails.orm.hibernate.GrailsHibernateTemplate.doExecute(GrailsHibernateTemplate.java:196)
at org.grails.orm.hibernate.GrailsHibernateTemplate.evict(GrailsHibernateTemplate.java:325)
at org.grails.orm.hibernate.AbstractHibernateGormInstanceApi.discard(AbstractHibernateGormInstanceApi.groovy:179)
at org.grails.datastore.gorm.GormEntity$Trait$Helper.discard(GormEntity.groovy:180)
at org.grails.datastore.gorm.GormEntity$Trait$Helper$discard$3.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
at grails.plugin.springsecurity.ui.RegistrationCode.discard(RegistrationCode.groovy)
at org.grails.datastore.gorm.GormEntity$discard$0.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117)
at grails.plugin.springsecurity.ui.SpringSecurityUiService.rollbackAndDiscard(SpringSecurityUiService.groovy:545)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1426)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:210)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:59)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:52)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:154)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:174)
at grails.plugin.springsecurity.ui.SpringSecurityUiService.handleException(SpringSecurityUiService.groovy:534)
at grails.plugin.springsecurity.ui.strategy.DefaultErrorsStrategy.handleException(DefaultErrorsStrategy.groovy:35)
at grails.plugin.springsecurity.ui.strategy.ErrorsStrategy$handleException.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
at grails.plugin.springsecurity.ui.SpringSecurityUiService.save(SpringSecurityUiService.groovy:636)
at grails.plugin.springsecurity.ui.SpringSecurityUiService.save(SpringSecurityUiService.groovy)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1426)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:210)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:59)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:52)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:154)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:190)
at grails.plugin.springsecurity.ui.SpringSecurityUiService.$tt__register(SpringSecurityUiService.groovy:181)
at grails.plugin.springsecurity.ui.SpringSecurityUiService$_register_closure17.doCall(SpringSecurityUiService.groovy)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1426)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1024)
at groovy.lang.Closure.call(Closure.java:414)
at groovy.lang.Closure.call(Closure.java:430)
at grails.transaction.GrailsTransactionTemplate$2.doInTransaction(GrailsTransactionTemplate.groovy:96)
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:133)
at grails.transaction.GrailsTransactionTemplate.execute(GrailsTransactionTemplate.groovy:93)
at grails.plugin.springsecurity.ui.SpringSecurityUiService.register(SpringSecurityUiService.groovy)
at grails.plugin.springsecurity.ui.strategy.DefaultRegistrationCodeStrategy.register(DefaultRegistrationCodeStrategy.groovy:40)
at grails.plugin.springsecurity.ui.strategy.RegistrationCodeStrategy$register$0.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:141)
at grails.plugin.springsecurity.ui.RegisterController.register(RegisterController.groovy:55)
at hvpermit.RegisterController.register(RegisterController.groovy)
at grails.plugin.springsecurity.ui.RegisterController.register(RegisterController.groovy)
at hvpermit.RegisterController.register(RegisterController.groovy)
... 84 common frames omitted

我无法重现这个问题。您能为您的用户提供您的spring安全配置和域类吗?我打开了sql日志记录并发现了真正的问题。它试图为ID字段使用一个不存在的序列。我现在已经创建了序列,问题已经解决。谢谢。是否可以提供更多关于use如何解决问题的详细信息?也许可以用一个答案更新问题,说明它试图对ID字段使用什么不存在的序列,以及您如何创建序列来解决问题?这将非常有帮助…打开SQL日志记录。您将看到查询尝试使用hibernate_seq这样的序列的位置。在db中创建此序列,您应该很高兴goi无法重现此问题。您能为您的用户提供您的spring安全配置和域类吗?我打开了sql日志记录并发现了真正的问题。它试图为ID字段使用一个不存在的序列。我现在已经创建了序列,问题已经解决。谢谢。是否可以提供更多关于use如何解决问题的详细信息?也许可以用一个答案更新问题,说明它试图对ID字段使用什么不存在的序列,以及您如何创建序列来解决问题?这将非常有帮助…打开SQL日志记录。您将看到查询尝试使用hibernate_seq这样的序列的位置。在数据库中创建这个序列,您应该可以很好地继续