Покрытие кода значительно снижается после перехода в спящий режим - геттеры и сеттеры не включены - есть идеи? - PullRequest
3 голосов
/ 21 октября 2011

Мы недавно обновили нашу кодовую базу с версии 2005 года до последней версии hibernate.

В результате этого мы наблюдаем значительное сокращение покрытия кода в ряде наших пакетов.Эти пакеты почти полностью представляют собой POJO, сопоставленные с объектами гибернации, и, похоже, разница заключается в охвате методов получения и установки.Большинство из этих объектов не тестируются напрямую модульно, поэтому большинство из них были получены в результате их использования в каком-либо интеграционном тесте, в результате чего hibernate попал в эти методы получения и установки.Произошло ли изменение в том, как hibernate заполняет те объекты, которые могли бы это объяснить?

Для большинства полей установлено значение lazy = false, поэтому об этом, вероятно, не идет речи., cobertura и jdk 1.6.

Ответы [ 2 ]

2 голосов
/ 21 октября 2011

Я не эксперт, но, возможно, последняя версия hibernate вставляет значения в поля вашего класса, в то время как в предыдущей версии использовались методы получения и установки ...

Где вы разместили свои аннотации?

на полях

@Id private Long id;

или по методам?

@Id public Long getId() { return id; }
1 голос
/ 21 октября 2011

Кто-то что-то изменил в xml, чтобы изменить доступ к полю, например,

<property name="xxx" ... access="field"/>

или глобально, как это?

<hibernate-mapping ... default-access="field">

По умолчанию доступ hibernate установлен на свойство,так что следует использовать аксессоры там, где они предоставляются.

...