FindBugs: Как избежать предупреждения «Незаписанное публичное поле» при использовании метамодели JPA? ⇐ JAVA
FindBugs: Как избежать предупреждения «Незаписанное публичное поле» при использовании метамодели JPA?
Я написал довольно много классов DAO и использовал в них API критериев JPA и его метамодель, как в этом примере:
@Override общественный EntityA findByEntityB (EntityBentityB) { Построитель CriteriaBuilder = this.getCriteriaBuilder(); CriteriaQuery CriteriaQuery = builder.createQuery(EntityA.class); Root root = критерииQuery.from(EntityA.class); критерииQuery.select(корень); критерииQuery.where(builder.and(builder.equal(root.get(EntityA_.entityB),entityB))); вернуть this.findByCriteriaQuery(criteriaQuery); } При выполнении статического анализа кода FindBugs выдает следующее предупреждение:
UWF_UNWRITTEN_PUBLIC_OR_PROTECTED_FIELD, приоритет: обычный
Незаписанное общедоступное или защищенное поле: EntityA_.entityB
В это общедоступное/защищенное поле не было обнаружено записей. Все его чтения будут возвращать значение по умолчанию. Проверьте наличие ошибок (нужно ли было его инициализировать?) или удалите, если он бесполезен.
Поскольку я использую классы метамодели почти во всех своих запросах, это предупреждение выдается очень часто.
Есть ли какой-нибудь полезный способ избежать этих предупреждений? Как мы все знаем, классы метамодели просто генерируются, а их атрибуты никогда не записываются.
Я не хочу исключать классы DAO из сканирования FindBugs, поскольку я хочу проверить их, чтобы, возможно, найти другие возможные ошибки!
Я написал довольно много классов DAO и использовал в них API критериев JPA и его метамодель, как в этом примере:
@Override общественный EntityA findByEntityB (EntityBentityB) { Построитель CriteriaBuilder = this.getCriteriaBuilder(); CriteriaQuery CriteriaQuery = builder.createQuery(EntityA.class); Root root = критерииQuery.from(EntityA.class); критерииQuery.select(корень); критерииQuery.where(builder.and(builder.equal(root.get(EntityA_.entityB),entityB))); вернуть this.findByCriteriaQuery(criteriaQuery); } При выполнении статического анализа кода FindBugs выдает следующее предупреждение:
UWF_UNWRITTEN_PUBLIC_OR_PROTECTED_FIELD, приоритет: обычный
Незаписанное общедоступное или защищенное поле: EntityA_.entityB
В это общедоступное/защищенное поле не было обнаружено записей. Все его чтения будут возвращать значение по умолчанию. Проверьте наличие ошибок (нужно ли было его инициализировать?) или удалите, если он бесполезен.
Поскольку я использую классы метамодели почти во всех своих запросах, это предупреждение выдается очень часто.
Есть ли какой-нибудь полезный способ избежать этих предупреждений? Как мы все знаем, классы метамодели просто генерируются, а их атрибуты никогда не записываются.
Я не хочу исключать классы DAO из сканирования FindBugs, поскольку я хочу проверить их, чтобы, возможно, найти другие возможные ошибки!
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение