设置字段的设置器不完整+mappedBy
场景:
entity --class ~.domain.Team
entity --class Person
field reference --fieldName team --type Team
focus --class Team
field set --fieldName members --type Person --mappedBy team
controller all --package ~.web
这会为人员和团队生成标准 CRUD 脚手架。创建/更新团队时,有一个成员列表选择器,但更改不会保留。
解决此问题的方法是更改 Team_Roo_JavaBean.aj 中的 setMembers:(
public void Team.setMembers(Set<Person> members) {
this.members = members;
for (Person person : members) {
person.setTeam(this);
}
}
添加循环以更新所有引用的 People,还需要更新那些取消引用的...)
为什么需要更改此 [样板] 代码?
Scenario:
entity --class ~.domain.Team
entity --class Person
field reference --fieldName team --type Team
focus --class Team
field set --fieldName members --type Person --mappedBy team
controller all --package ~.web
This generates standard CRUD scaffolding for People and Teams. When creating/updating a Team, there is a list selector for members, but changes are not persisted.
A workaround for this is to change setMembers in Team_Roo_JavaBean.aj:
public void Team.setMembers(Set<Person> members) {
this.members = members;
for (Person person : members) {
person.setTeam(this);
}
}
(added loop to update all referenced People, need to update those dereferenced as well...)
Why are changes to this [boilerplate] code necessary?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我认为这是一个已知的 Spring Roo 拦截器错误: https://jira.springsource.org/browse/ ROO-2365。
I think this is a known blocker Spring Roo bug: https://jira.springsource.org/browse/ROO-2365.