StaleStateException:Hibernate尝试更新而不是插入?

时间:2013-09-11 21:57:00

标签: hibernate grails

我将以下域映射到mysql-database:

class User {
  String username
  String passwordHash 

static mapping={
    table 'team'
    version false
    passwordHash column: 'Password' 
    id column: 'username', name: 'username'
   }
}

当尝试执行实例的save()时,hibernate总是执行此查询:

  

Hibernate:更新团队设置密码=?其中username =?

调用save():

def save(){
   def userInstance = new User()
   userInstance.username = "test"
   userInstance.passwordHash = "abcd"
   if(!userInstance.save(flush:true)){
       //
   }
}

我已经尝试更改flush:true to insert:true。没效果。

1 个答案:

答案 0 :(得分:2)

这是我在上一个问题中没有通知你的。如果您使用自己的标识符并分配自己的assigned,则必须将生成器用作id。所以:

id column: 'username', name: 'username', generator: 'assigned'

此外,我建议将域名Team用作team而不是User,我不确定否则会很好。