java - hibernate 升级后代码覆盖率显着下降 - 未涵盖 getter 和 setter - 有什么想法吗?

标签 java hibernate code-coverage hibernate-mapping cobertura

我们最近将我们的代码库从 2005 版本升级到最新版本的 hibernate 。

因此,我们发现许多软件包中的代码覆盖率显着降低。这些包几乎都是映射到hibernate对象的POJO,区别似乎在于getters和setters的覆盖范围。这些对象中的大多数都没有直接进行单元测试,因此之前的报道大部分来自它们在一些集成测试中的使用,导致 hibernate 命中这些 getter 和 setter。

有没有人见过类似的事情发生? hibernate 填充那些可以解释这一点的对象的方式是否发生了变化?

大多数字段都设置为 lazy=false,所以这可能是不可能的。

我们正在使用 testng、cobertura 和 jdk 1.6。

最佳答案

我不是专家,但也许最新版本的 hibernate 会在你的类的字段中注入(inject)值,而以前的版本使用 getter 和 setter ...

你把注释放在哪里了?

在田野上

@Id private Long id;

还是在方法上?

@Id public Long getId() { return id; }

关于java - hibernate 升级后代码覆盖率显着下降 - 未涵盖 getter 和 setter - 有什么想法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7847617/

相关文章:

java - OpenCV:WarpPerspective 函数的参数是什么?

java - 如果在将Optional <Object>作为参数时,编译器将解析为null,那是一个好主意吗?

java - HTTP 状态 500 - javax.servlet.ServletException : java. lang.NoClassDefFoundError: org/hibernate/Session

ios - 如何在 XCode 9.3 上收集覆盖率数据?

java - 如何设置定时器自动提交

hibernate - 在实体类中添加toString方法的JPA : java. lang.StackOverflowError

java - Hibernate 期望序列而不是 postgres 的表

python - 使用 Python 和 Coverage 构建 Hudson 失败

python - 从覆盖报告中排除抽象属性

java - while 循环内变量变化