用于实体关联更新的 Spring Data REST 事件

标签 spring rest spring-data spring-data-rest

创建新实体关联时是否有可用的 Spring 数据休息事件处理程序? IE。 PUT a 到关联资源 url。

我的实体类的关系是:

public class Group{
  @ManyToMany
  @JoinTable(name = "user_groups",
           joinColumns = @JoinColumn(name = "group_id"),
           inverseJoinColumns = @JoinColumn(name = "user_id")
  )
  private List<User> users;
}

我已尝试对/groups/[id]/users 进行 PUT,这将成功地将用户附加到组,但我找不到可在此类事件之后使用的事件处理程序。

我还尝试使用链接对象将 PUT 更新到/groups/[id]/users,这也成功附加了该对象:

{"_links":
  {"users": 
    {"href" : "http://localhost:8084/users/1"} 
  }
}

我尝试的两个事件处理程序是:

@HandleAfterLinkSave
public void handleGroupUpdate(Group g, User u){
    log.debug("User "+u.getUsername() +"added to group "+g.getName());
}

@HandleAfterLinkSave
public void handleGroupUpdateGen(Object g, Object u){
    log.debug("User "+u.toString() +"added to group "+g.toString());
}

事件:http://docs.spring.io/spring-data/rest/docs/current/reference/html/#events

协会资源:http://docs.spring.io/spring-data/rest/docs/2.3.0.RELEASE/reference/html/#repository-resources.association-resource

最佳答案

文本/uri-列表的正确参数是

public void handleGroupUpdate(Group g, List<User> u)

这与 Group 类内部的用户字段定义一致。

关于用于实体关联更新的 Spring Data REST 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31013562/

相关文章:

rest - 如果数据库服务器超时,返回 HTTP 504 Gateway Timeout 作为响应是否合适?

java - 如何获取 Jenkins 服务器上 findbugs 生成的报告?

postgresql - 为什么 hibernate 复制行?

java - 在服务器停止时获取内存泄漏错误(Eclipse、Hibernate、Spring)

java - 在 Spring Boot 中添加 servlet 过滤器时没有默认构造函数

java - 如何为 Swagger Codegen 处理 org.springframework.core.io.Resource

java - Dockerize Spring Boot 应用程序

rest - 如何通过postman调用Azure Search相关的REST API?

java - 处理 spring 数据中的并发事务

elasticsearch - 获取所有存储桶以进行汇总 Elasticsearch