Repository.save仅在创建时提交,而不是在更新时提交

时间:2017-05-26 08:09:52

标签: spring hibernate spring-data spring-data-jpa

我有一个使用Spring Boot,Hibernate和Spring Data Jpa的微服务。问题在于,当我尝试保存实体时,它仅在实体是新的时才提交事务,而在更新时不提交事务(当id不为null时)。这很奇怪,因为我在创建或更新实体时使用相同的代码。

我激活了日志,只有在创建实体时我才能看到insert into语句。任何提示?

@Transactional
public class MyEntityService {

    @UserCanCud
    public Entity save(final Entity entity) {
        Assert.notNull(entity, "The entity to store cannot be null");
        return repository.save(entity);
    }
}

PS:当我返回实体时,它是实体“已更新”,但如果我再次检索它,则值不会更新。

UserCanCud检查数据库中是否允许用户对该实体进行cud操作。

1 个答案:

答案 0 :(得分:0)

最后我解决了这个问题.... pojo有注释@Immutable。