我是JDO和MySQL的新手。在我的项目中,我希望所有实体都应该自动转换为表格。
我开始使用JDO并定义了这样的属性,
javax.jdo.PersistenceManagerFactoryClass=org.datanucleus.api.jdo.JDOPersistenceManagerFactory
datanucleus.autoCreateSchema=true
datanucleus.validateTables=false
datanucleus.validateConstraints=false
datanucleus.query.sql.allowAll = true
javax.jdo.option.ConnectionDriverName=com.mysql.jdbc.Driver
javax.jdo.option.ConnectionURL=jdbc:mysql://127.0.0.1:3306/db_name
javax.jdo.option.ConnectionUserName=user
javax.jdo.option.ConnectionPassword=123456
javax.jdo.option.Mapping=hsql
示例实体:
@PersistenceCapable(identityType = IdentityType.APPLICATION, table = "heartbeat")
public class HeartBeat implements Serializable{
@PrimaryKey
@Column(length=128)
private String userId;
.......
}
现在,当我编译或运行我的应用程序时,表格不是自动创建的。我不确定我应该使用哪个属性来根据创建的实体自动创建表。
请接受我的问题,因为我是JDO和MySQL集成的新手。
提前致谢。
答案 0 :(得分:0)
对于JDO,如果要在持久性过程中为“表”创建模式,可以使用此属性 datanucleus.schema.autoCreateTables 告诉DataNucleus。 要自动创建“列”,请使用 datanucleus.schema.autoCreateColumns ,对于“约束”,请使用 datanucleus.schema.autoCreateConstraints 。将属性设置为true。
<property name="datanucleus.schema.autoCreateTables" value="true"/>
<property name="datanucleus.schema.autoCreateColumns" value="true"/>
<property name="datanucleus.schema.autoCreateConstraints" value="true"/>
三者的快捷方式,使用 datanucleus.schema.autoCreateAll 并设置为true。
<!-- shortcut for the three -->
<property name="datanucleus.schema.autoCreateAll" value="true"/>
您可以在http://www.datanucleus.org/products/accessplatform_4_1/jdo/schema.html
查看文档定义了这样的JDO属性;
datanucleus.schema.autoCreateTables=true
datanucleus.schema.autoCreateColumns=true
datanucleus.schema.autoCreateConstraints=true
或快捷方式
datanucleus.schema.autoCreateAll=true