我想创建一个更新实体的通用代码。这就是我想出的:
def update(id, Object updatedEntity) {
def entity = findById(id)
if (entity) {
updatedEntity.id = id
def mergedEntity = updatedEntity.merge()
if (mergedEntity) {
return mergedEntity
} else {
throw new ValidationException("Cannot update.", mergedEntity.errors)
}
} else {
throw new IllegalArgumentException("No ${domainClass.getSimpleName()} with id=${id} found.")
}
}
为什么mergedEntity
总是增加id
值(我的意思是updatedEntity.id = 1
,然后mergedEntity.id
将是2.我该如何解决?
答案 0 :(得分:0)
我找到了导致所描述行为的原因:我的id
参数始终是String的一个实例,所以当我传递id = 1时,实际的id值是“1”并且它不被视为hibernate id
。
除此之外,为了完成这项工作,我还必须覆盖version
属性。