Java Hibernate:设置字段后自动保持

Java Hibernate:设置字段后自动保持,java,spring,hibernate,Java,Spring,Hibernate,在我的spring应用程序的一个Rest控制器中,一个实体的实例从db加载,通过调用该实体上的setXX方法更改该实体的一个字段,最后将其保存回db 我想知道是否有可能在每次调用其setXX方法后自动更新数据库中的这个实例。我知道从性能角度来看,这并不理想,但在某些情况下,这对我来说是可行的 编辑1 这是我保存/加载实体的测试代码。我在util类中调用以下helper方法以将用户详细信息保存到db: public CustomUserDetails createUser(String usern

在我的spring应用程序的一个Rest控制器中,一个实体的实例从db加载,通过调用该实体上的
setXX
方法更改该实体的一个字段,最后将其保存回db

我想知道是否有可能在每次调用其
setXX
方法后自动更新数据库中的这个实例。我知道从性能角度来看,这并不理想,但在某些情况下,这对我来说是可行的

编辑1

这是我保存/加载实体的测试代码。我在util类中调用以下helper方法以将用户详细信息保存到db:

public CustomUserDetails createUser(String username, String name, String description, String imageId) {
        User user = new User();
        user.setName(name);
        user.setDescription(description);
        user.setImageId(imageId);
        CustomUserDetails userDetails = new CustomUserDetails(username,
                DUMMY_PASSWORD, true, true, true, true,
                AuthorityUtils.commaSeparatedStringToAuthorityList("ROLE_USER"));
        userDetails.setUser(user);
        userDetailsRepository.save(userDetails);
        return userDetails;
    }
在测试中,我通过调用此方法返回的值来获取
User
实例。I
setXX
一些值,但它不会持久化

在代码节选添加之后

这不是托管实体。。您需要持久化它和/或从DB检索它,以便后续setter调用能够持久化(假设事务仍然打开)


只要实体处于管理/持久状态,则()

当 持久性上下文被刷新。没有必要打电话给某个特定的客户 方法使修改持久化


另外,正如所评论的,在Spring
@Transactional
方法中,获取一个实体(因此处于托管/持久的状态),然后直接调用setter属性将导致持久化该属性。

如果调用“setter”,您的实体将自动保存在数据库中方法中具有“事务”注释的方法。通常我们是在服务层进行的。我在一个非事务性的测试代码中调用setter方法。在测试过程中如何获取实体?
User user = new User();