我有带@Table和@Column映射注释的java类。我目前正在使用hibernate作为ORM。我想使用某种编译\构建时间步骤来检查实时测试数据库的所有名称(最好也是类型),最好使用maven。理想情况下,如果注释中的列名或表名未在服务器上的特定表或数据库中定义,则构建将失败。
有没有办法解决这个问题?
答案 0 :(得分:3)
创建一个将执行
的JUnit测试Persistence.createEntityManagerFactory("YOUR_TEST_PU");
在测试persistence.xml文件中添加以下行:
<property name="hibernate.hbm2ddl.auto" value="validate"/>
像这样,JPA将使用您的代码验证您的架构。如果出现错误,测试将会中断并构建。