创建新实体关联时,是否有可用的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字段定义一致。