【问题标题】:How to update entity using spring-data neo4j如何使用 spring-data neo4j 更新实体
【发布时间】:2014-05-20 09:14:53
【问题描述】:

我的问题是,当我尝试使用 GraphRepository 的“保存”方法更新实体时,我所有未更改的字段都被重写为空值。

我只用 id 和 name 发出 PUT 请求,因为我想更改用户名,但 save 方法会自动将密码字段更改为空值。我只想更新脏值。我怎样才能做到这一点?也许有某种合并或更新方法?

我的实体类如下所示:

@NodeEntity
public class User {

@GraphId Long id;

String name;
String password;

    public Long getId() {
    return id;
}

public void setId(Long id) {
    this.id = id;
}

    public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}


@JsonIgnore
public String getPassword() {
    return password;
}

public void setPassword(String password) {
    this.password = password;
}

}

我的存储库类如下所示:

public interface UserRepository extends GraphRepository<User> {
    public User findById(Long id);
}

【问题讨论】:

  • 更新实体字段只需修改事务内部的值,无需调用save方法。
  • 你能添加一些代码示例吗?

标签: spring spring-data spring-data-neo4j


【解决方案1】:
@Transactional
public void update(Long id, String name) {
    User user = repository.findById(id);

    if (user != null) {
        user.setName(name);
    }
}

【讨论】:

    猜你喜欢
    • 2012-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-21
    • 2023-03-07
    相关资源
    最近更新 更多