我无法将任何数据插入到我的DbUser.groovy域类中。当Iam调用以下方法时。
def insertDbuserDetails(Map Hmap){
try{
def emp = Employee.get(Hmap.get("empId"))
if(emp){
def Username = springSecurityService.getPrincipal().getUsername()
def row = DbUser.findByEmployee(emp)
if(!row){
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)
data.save(failOnError: true)
return data
}else{
return "exist"
}
}else{
return "invalid"
}
}
catch(Exception e){
println("Exception in getDbuserDetails() of DbuserService.groovy: "+e);
}
}

它给我一个像
这样的错误错误| 2017-02-10 18:44:08,307 [http-bio-8080-exec-4] ERROR spi.SqlExceptionHelper - Field' employee'没有默认值 DbuserService.groovy的getDbuserDetails()中的异常:org.springframework.dao.DataIntegrityViolationException:Hibernate操作:无法执行语句; SQL [不适用]; Field'员工'没有默认值;嵌套异常是java.sql.SQLException:Field' employee'没有默认值
错误| 2017-02-10 18:44:08,328 [http-bio-8080-exec-4]错误hibernate.AssertionFailure - HHH000099:发生断言失败(这可能表示Hibernate中存在错误,但更可能是由于不安全使用会话):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 - 参数: Repassword:pass123 客户端:testclient 密码:pass123 emp:SE357 empName:Abhilash Shajan 用户名:Abhi123 com.domain.gcg.DbUser条目中的null id(在发生异常后不要刷新会话)。 Stacktrace如下: 消息:com.domain.gcg.DbUser条目中的null id(在发生异常后不刷新会话)
这是我的DbUser.groovy域类
class DbUser {
Employee employee
String client
String username
String password
String create_id
Date create_dt
String mod_id
Date mod_dt
static mapping = {
version true
dynamicUpdate true
password type: GormEncryptedStringType
employee column: '`employee`',generator: 'foreign', params: [ property: 'employee'], insertable: false, updateable: false
}
static constraints = {
mod_id(nullable: true)
mod_dt(nullable: true)
}

有人可以帮助我吗?
答案 0 :(得分:1)
检查您的映射,您在employee字段上有insertable和updateable = false,并且您正在尝试更新此字段。