如何修复Hibernate元模型类的问题使这个“公共静态id”字段最终由Sonar引发

时间:2017-02-23 08:31:38

标签: java hibernate sonarqube

我创建了Hibernate元模型类作为文章。 http://www.thoughts-on-java.org/static-metamodel/

声纳给我这个我想解决的关键问题: Issue screenshot

声纳建议

  

不符合规范的代码示例

     

public class Greeter {public static Foo foo = new Foo(); ......}

     

合规解决方案

     

public class Greeter {public static final Foo FOO = new Foo();
  ......}

SingularAttribute是界面。

有人能给我一些建议吗?

1 个答案:

答案 0 :(得分:0)

在你的情况下,我会忽略SonarQube警告,因为有充分的理由将字段定义为volatile(参见Q& A here)。此外,JPA Spec定义了对'volatile'关键字的需求。

此外,由于生成了这些类,因此无论如何都无法真正改变它们。

你可以在类中添加一个@SuppressWarning("squid:S2386"),但是再次这样做是不可行的,因为这些类是生成的(在你的构建中可重复使用)。

因此,您可以将所有这些问题标记为声纳中的误报,或者通过将sonar.exclusions设置为"*_.java"

之类的内容来完全忽略这些(生成的)类