【问题标题】:Prevent getters/setters from generating for @Transient fields防止为 @Transient 字段生成 getter/setter
【发布时间】:2013-03-21 10:47:57
【问题描述】:

Spring Roo 有一个 @RooJavaBean 注释,它为非瞬态字段生成 AspectJ getter 和 setter。问题是它也会为瞬态场生成它们。我在 Asset.java 中有这个:

@Transient
private Logger log = Logger.getLogger(this.getClass());

我在 Asset_Roo_JavaBean.aj 中有以下内容:

public Logger Asset.getLog() {
    return this.log;
}

public void Asset.setLog(Logger log) {
    this.log = log;
}

即使一个字段是瞬态的,我想您仍然应该能够使用 getter 和 setter 访问它,但为什么文档对 gettersByDefault 注释字段这么说:

是否为该类中声明的每个非瞬态字段生成getter(默认为true)

是否有另一种方法可以阻止它在瞬态字段上生成方法,以便将它们视为私有属性?

【问题讨论】:

    标签: annotations javabeans spring-roo


    【解决方案1】:

    您使用的是哪个版本的 Spring Roo?根据ROO-3426 issue JIRA 条目,该错误应使用版本1.2.5.RELEASE 进行修补。

    1.) 我建议升级你的 Roo,它应该可以解决问题。

    2.) 一定要检查是否导入了javax.persistence.Transient

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-18
      • 2019-03-24
      • 1970-01-01
      • 2015-11-23
      • 1970-01-01
      • 1970-01-01
      • 2012-08-01
      • 2020-05-19
      相关资源
      最近更新 更多