我将以下域映射到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。没效果。
答案 0 :(得分:2)
这是我在上一个问题中没有通知你的。如果您使用自己的标识符并分配自己的assigned
,则必须将生成器用作id
。所以:
id column: 'username', name: 'username', generator: 'assigned'
此外,我建议将域名Team
用作team
而不是User
,我不确定否则会很好。