Проверка сопоставления столбцов JPA во время загрузки - PullRequest
0 голосов
/ 20 января 2010

В текущем проекте недавно произошла путаница изменений в схеме БД.Это были в основном очистки стиля, такие как обеспечение того, чтобы все столбцы следовали единому шаблону именования и были all_in_snake_case.

Я считаю, что мы получили все ссылки на столбцы в нашей БД, а также в наших сущностях, возможноJPA, EclipseLink или GlassFish выполняют какую-то операцию «проверить все», чтобы убедиться, что столбцы каждой сущности существуют и соответствуют ??

Ответы [ 3 ]

0 голосов
/ 20 января 2010

Специфично для реализации JPA. DataNucleus, безусловно, может проверить, что ваша схема соответствует определениям сущностей, и я уверен, что другие реализации могут сделать что-то подобное

0 голосов
/ 22 января 2010

Просто напишите тест JUnit, который получит все сопоставленные атрибуты сущности с использованием java-отражения, а затем с помощью SQL получите все столбцы таблицы и сравните их, повторите операцию для всех ваших сущностей или таблицы. *

например, если вы используете oracle в качестве базы данных, используйте следующий запрос для получения столбцов таблицы:

select column_name 
from user_tab_columns
where table_name = 'YOUR_TABLE';
0 голосов
/ 20 января 2010

Мои два цента:

  • напишите модульный тест для каждого объекта, чтобы проверить сопоставление и запросы в DAO. Это актив будущего, который того стоит.
  • вы можете создать схему базы данных из сопоставления или аннотации (включить автоматическую генерацию таблиц с помощью eclipselink.ddl-generation), а затем сравнить две схемы базы данных с помощью какого-либо инструмента базы данных (который будет зависеть от ваша база данных. Может быть, ваш администратор базы данных, если у вас есть, может помочь).
...