Spring Roo生成的Managed Bean Aspect在使用@ElementCollection时错过了import语句

时间:2014-08-07 07:39:36

标签: java eclipse spring aspectj spring-roo

使用Spring Roo生成托管Bean时,Roo忘记为importSet等集合添加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一直在重新创建文件,所以这真的很烦人。

所以:

  1. 这是一个错误吗?

  2. 您能否想出任何解决此问题的方法,或许可以告诉Eclipse在文件更改时自动添加缺少的导入语句?

  3. 注意:如果@Embedded中有Person用户类型,也会出现同样的问题。

1 个答案:

答案 0 :(得分:0)

答案:

  
      
  1. 这是一个错误吗?
  2.   

是的,我想是的。所以,我建议你在Spring Roo Jira创建一张票。

  
      
  1. 您能想出任何方法来规避这个问题吗?
  2.   

只需方法推送到PersonBean.java,即可添加缺少的导入。如果你已经在相关的 .java 文件中声明了它,那么Roo将不会在 .aj 文件中重新创建此方法。