0

当前项目最近对数据库模式进行了一系列更改。这些主要是样式清理,例如确保所有列都遵循一致的命名模式并且是 all_in_snake_case 。

我相信我们在数据库和实体中都获得了所有列引用,是否可以让 JPA、EclipseLink 或 GlassFish 执行某种“验证所有”操作以确保每个实体列存在并匹配?

4

3 回答 3

0

我的两分钱:

  • 为每个实体编写单元测试以测试 DAO 中的映射和查询。这是未来的资产,值得。
  • 您可以从映射或注释中创建数据库模式(使用 开启自动生成表eclipselink.ddl-generation),然后使用一些数据库工具比较两个数据库模式(这将取决于您的数据库。也许您的 DBA,如果您有的话,能够帮助)。
于 2010-01-20T16:16:21.917 回答
0

特定于 JPA 实现。DataNucleus 当然可以验证您的架构与实体定义匹配,我相信其他实现也可以做类似的事情

于 2010-01-20T16:39:26.930 回答
0

只需编写一个 JUnit 测试,它将使用 java 反射获取实体的所有映射属性,然后使用 SQL 获取表的所有列,并比较它们,对所有实体或表重复操作。

例如,如果您使用 oracle 作为数据库,请使用以下查询来获取表列:

select column_name 
from user_tab_columns
where table_name = 'YOUR_TABLE';
于 2010-01-21T21:12:55.330 回答