当前项目最近对数据库模式进行了一系列更改。这些主要是样式清理,例如确保所有列都遵循一致的命名模式并且是 all_in_snake_case 。
我相信我们在数据库和实体中都获得了所有列引用,是否可以让 JPA、EclipseLink 或 GlassFish 执行某种“验证所有”操作以确保每个实体列存在并匹配?
当前项目最近对数据库模式进行了一系列更改。这些主要是样式清理,例如确保所有列都遵循一致的命名模式并且是 all_in_snake_case 。
我相信我们在数据库和实体中都获得了所有列引用,是否可以让 JPA、EclipseLink 或 GlassFish 执行某种“验证所有”操作以确保每个实体列存在并匹配?
我的两分钱:
eclipselink.ddl-generation
),然后使用一些数据库工具比较两个数据库模式(这将取决于您的数据库。也许您的 DBA,如果您有的话,能够帮助)。特定于 JPA 实现。DataNucleus 当然可以验证您的架构与实体定义匹配,我相信其他实现也可以做类似的事情
只需编写一个 JUnit 测试,它将使用 java 反射获取实体的所有映射属性,然后使用 SQL 获取表的所有列,并比较它们,对所有实体或表重复操作。
例如,如果您使用 oracle 作为数据库,请使用以下查询来获取表列:
select column_name
from user_tab_columns
where table_name = 'YOUR_TABLE';