2011-12-13 65 views
3

使用EclipseLink/JPA 2.0,我找不到在启动时检查数据库模式的方法。它只能创建或删除和创建表。 当hibernate.hbm2ddl.auto=validate时,Hibernate会自动执行模式验证,这真的很酷。 有没有机会通过EclipseLink实现这一点?使用EclipseLink进行数据库模式验证

+0

第一次问这个问题已经差不多4年了。我想知道EclipseLink是否添加了persistence.xml设置来执行此验证检查吗?正如@ochedru提到的那样,Hibernate有这个能力。最近我发现OpenJPA也有这个功能:openjpa.jdbc.SynchronizeMappings =验证 – devdanke

回答

2

我不认为它有一个persistence.xml选项(请记录一个bug),但是你可以通过IntegrityChecker完成。

使用SessionCustomizer在会话上配置IntegrityChecker以检查数据库。它将验证表名和列名与数据库匹配。

+0

谢谢!现在我试图在实体类的表不存在的时候避免发生异常(因为在我的情况下,EclipseLink配置了'eclipselink.ddl-generation = create-tables')。 – ochedru