2017-02-13 47 views
0

我无法将任何数据插入到我的DbUser.groovy域类中。当Iam调用下面的方法时。在Grails中没有默认值异常

\t def insertDbuserDetails(Map Hmap){ 
 
\t \t try{ 
 
\t \t \t def emp = Employee.get(Hmap.get("empId")) 
 
\t \t \t if(emp){ 
 
\t \t \t def Username = springSecurityService.getPrincipal().getUsername() 
 
\t \t \t def row = DbUser.findByEmployee(emp) 
 
\t \t \t if(!row){ 
 
\t \t \t def data = new DbUser(employee:emp,username:Hmap.get("userName"),password:Hmap.get("password"),client:Hmap.get("client"),create_id:Username,create_dt:new Date(),mod_id:null,mod_dt:null) 
 
\t \t \t data.save(failOnError: true) 
 
\t \t \t return data 
 
\t \t \t }else{ 
 
\t \t \t return "exist" 
 
\t \t \t } 
 
\t \t }else{ 
 
\t \t return "invalid" 
 
\t \t } 
 
\t \t } 
 
\t \t \t catch(Exception e){ 
 
\t \t \t println("Exception in getDbuserDetails() of DbuserService.groovy: "+e); 
 
\t \t \t } 
 
\t \t }

它给了我像

错误的错误| 2017年2月10日18:44:08307 [HTTP-BIO-8080-EXEC-4] ERROR spi.SqlExceptionHelper - 字段 '雇员' 不具有在getDbuserDetails)DbuserService.groovy的缺省值 的异常(:有机.springframework.dao.DataIntegrityViolationException:Hibernate操作:无法执行语句; SQL [n/a];字段'员工'没有默认值;嵌套异常是java.sql.SQLException:字段'员工'没有默认值

错误信息: 2017年2月10日18:44:08328 [HTTP-BIO-8080-EXEC-4] ERROR hibernate.AssertionFailure - HHH000099:断言故障发生(这可指示在休眠中的错误,但更可能是由于不安全使用):org.hibernate.AssertionFailure:com.domain.gcg.DbUser条目中的null id(发生异常后不刷新会话)

错误信息: 2017-02-10 18:44:08,469 [http-bio-8080-exec-4] ERROR errors.GrailsExceptionResolver - 处理请求时发生AssertionFailure:[POST]/UserManagement/dbuser/addDbuserDetails - 参数: 重新输入密码:pass123 客户端:TestClient的 密码:pass123 EMPID:SE357 empName:Abhilash Shajan 用户名:在com.domain.gcg.DbUser进入Abhi123 空ID(发生异常后不要冲洗会议)。堆栈跟踪如下: 消息:com.domain.gcg.DbUser进入空ID(发生异常后不要冲洗会议)

这里是我DbUser.groovy域类

class DbUser { 
 
\t \t 
 
\t Employee employee 
 
\t String client 
 
\t String username 
 
\t String password 
 
\t String create_id 
 
\t Date create_dt 
 
\t String mod_id 
 
\t Date mod_dt 
 
\t 
 
\t static mapping = { 
 
\t \t version true 
 
\t \t dynamicUpdate true 
 
\t \t password type: GormEncryptedStringType 
 
       employee column: '`employee`',generator: 'foreign', params: [ property: 'employee'], insertable: false, updateable: false 
 
    } 
 

 
\t static constraints = { 
 
\t \t mod_id(nullable: true) 
 
\t \t mod_dt(nullable: true) 
 
\t }

有人能帮助我吗?

+0

这是和以前一样的问题。您是否尝试按照我的建议重新创建数据库? (只是删除所有表并重新运行Grails应用程序,让它重新创建表。 –

+0

@MikelisBaltruks我删除了数据库,并创建了一个新的一个,但问题仍然存在。:-( –

回答

1

检查您的映射,您在employee字段上有insertable和updateable = false,并且您试图更新此字段。

+0

这是我的问题!伟大的答案。 –