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



创建新实体关联时,是否有可用的spring数据rest事件处理程序?即,将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-资源

text/uri列表的正确参数应该是

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

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

最新更新