2015-02-11 3 views
3

Некоторые IDE (я смотрю на вас, IntelliJ IDEA) могут выполнять некоторую статическую проверку классов сущностей JPA, а также запросов, включая параметры.Проверка времени компиляции для объектов JPA и запросов

Есть ли способ сделать то же самое во время компиляции, чтобы такие проверки могли быть интегрированы в процесс сборки, аналогично работающим модульным тестам? Очевидно, что хороший комплект для тестирования модулей будет выполнять все сущности и запросы, но было бы неплохо иметь этот дополнительный уровень проверки.

ответ

3

Вы можете воспользоваться JPA Metamodel Generator support, поэтому вы можете использовать классы Metamodel при построении запросов API Критерии. Это даст вам гарантию безопасности во время компиляции для процесса построения запроса.

Но это не освобождает вас от добавления полного integration testing routine, чтобы вы могли проверить весь уровень доступа к данным и даже поддержку управления транзакциями.

Особенно Критерии API, который может generate some unexpected SQL queries. Вот почему это хорошая практика для examine and validate all generated SQL queries.

Мой любимый чек состоит в том, чтобы гарантировать, что Hibernate actual SQL query count генерирует от вашего имени. Это может предотвратить проблемы с запросом N + 1 и дать вам представление о внутренней работе Hibernate.

Смежные вопросы