bra*_*ter 25 jpa schema-migration
我最近一直在简短地看JPA,我想知道数据库架构迁移的交易是什么,并且与你创建的类保持一致.
JPA对这个东西有支持吗?公用事业?最佳实践?
干杯!
简短的回答是否定的.
如果更改bean,则必须手动迁移现有模式.因此,对于Rails样式的数据库迁移,您必须查看其他地方.
但是,您可以轻松地从Java bean 生成初始ddl.下面的示例演示了使用EclipseLink 2.0版创建模式:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="JPATestPU" transaction-type="RESOURCE_LOCAL">
<provider>
org.eclipse.persistence.jpa.PersistenceProvider
</provider>
<class>org.randompage.MyEntity</class>
<properties>
<property name="javax.persistence.jdbc.user" value="johndoe"/>
<property name="javax.persistence.jdbc.password" value="secret"/>
<property name="javax.persistence.jdbc.driver" value="org.h2.Driver"/>
<property name="javax.persistence.jdbc.url" value="jdbc:h2:~/.h2/testdb;FILE_LOCK=NO"/>
<property name="eclipselink.ddl-generation" value="drop-and-create-tables"/>
<property name="eclipselink.logging.level" value="INFO"/>
</properties>
</persistence-unit>
</persistence>
Run Code Online (Sandbox Code Playgroud)
这里的关键因素是
<property name="eclipselink.ddl-generation" value="drop-and-create-tables"/>
Run Code Online (Sandbox Code Playgroud)
这告诉EclipseLink删除现有表并从JPA映射中生成一次新表.此过程特定于供应商,因此对于其他JPA供应商(Hibernate,OpenJPA ...),您必须查阅其特定文档.
如果你设置generateDdl为Hibernate(如果它是底层实现),那么它会根据你当前的方言生成数据库模式。所以改变方言后它会自动生成数据库。
其他 JPA 提供商可能对此有不同的属性。
| 归档时间: |
|
| 查看次数: |
8463 次 |
| 最近记录: |