0

我想创建一个用于更新实体的通用代码。这是我想出的:

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。我该如何解决它?

4

1 回答 1

0

我找到了导致所描述行为的原因:我的id参数始终是 String 的实例,所以当我传递 id = 1 时,实际的 id 值为“1”并且它不被视为 hibernate id

除此之外,为了完成这项工作,我还必须覆盖version属性。

于 2012-05-30T20:47:55.357 回答