使用Spring Roo生成托管Bean时,Roo忘记为import
或Set
等集合添加Map
个语句。
请参阅以下示例,Person
,其中包含一个姓氏和多个名字:
@RooJavaBean
@RooToString
@RooJpaActiveRecord
public class Person {
private String lastName;
@ElementCollection
private Set<String> firstNames;
}
在Roo Shell中调用web jsf all --package test.jsf
时,会生成PersonBean_Roo_ManagedBean.aj
,其中包含以下代码:
public HtmlPanelGrid PersonBean.populateCreatePanel() {
...
firstNamesCreateInput.setValueExpression("value", expressionFactory.createValueExpression(elContext, "#{personBean.person.firstNames}",
Set.class));
...
}
如您所见,Set
被使用(当然)。但是PersonBean_Roo_ManagedBean
缺少导入语句import java.util.Set
。在Eclipse中可以很容易地添加导入Strg + Shift + O,但是Roo一直在重新创建文件,所以这真的很烦人。
所以:
这是一个错误吗?
您能否想出任何解决此问题的方法,或许可以告诉Eclipse在文件更改时自动添加缺少的导入语句?
注意:如果@Embedded
中有Person
用户类型,也会出现同样的问题。
答案 0 :(得分:0)
答案:
- 这是一个错误吗?
醇>
是的,我想是的。所以,我建议你在Spring Roo Jira创建一张票。
- 您能想出任何方法来规避这个问题吗?
醇>
只需将方法推送到PersonBean.java
,即可添加缺少的导入。如果你已经在相关的 .java 文件中声明了它,那么Roo将不会在 .aj 文件中重新创建此方法。