【问题标题】:Spring Data REST persistance MySQL one-to-many embedded objects update(PUT/PATCH)Spring Data REST 持久性 MySQL 一对多嵌入对象更新(PUT/PATCH)
【发布时间】:2015-10-21 07:33:51
【问题描述】:

我有两个类:Object 和 ObjectProperty,它们以一对多的关系连接。所以 Object 有一些 ObjectParameters 的 HashSet。

public Set<SOPParameter> parameters = new HashSet<>();

它 Spring Data REST 完美地执行 POST,但在 PUT 替换或 PATCH 用于更新具有特定 id 的对象的情况下,参数根本不受影响。 有什么办法可以解决?

【问题讨论】:

  • 你能多贴一些代码吗,比如执行 PATCH 和 PUT 的方法?还有你的存储库类。
  • 没有特定的方法可以处理这些请求,它依赖于 Spring Data Rest。存储库类也不存在上述工具的唯一接口:public interface ObjectsRepository extends JpaRepository&lt;Object, Long&gt; { Page&lt;Object&gt; findAll(Pageable pageable); Object findOne(Long aLong); } 抱歉,cmets 中的代码格式错误。

标签: mysql spring spring-data spring-data-rest


【解决方案1】:

回答我自己的问题: 首先,注解 orphanRemoval 必须设置为 true

@OneToMany(cascade = {CascadeType.ALL,CascadeType.PERSIST,CascadeType.MERGE}, mappedBy = "sop", orphanRemoval=true) public Set<SOPParameter> parameters = new HashSet<>();

其次,必须声明 setParameters 的处理程序:

public void setParameters(HashSet<SOPParameter> set) { if (set != null) { this.parameters.clear(); this.parameters.addAll(set); } }

【讨论】:

    猜你喜欢
    • 2021-01-24
    • 1970-01-01
    • 2018-01-08
    • 1970-01-01
    • 2017-06-30
    • 1970-01-01
    • 2018-05-04
    • 1970-01-01
    • 2019-04-01
    相关资源
    最近更新 更多