gpt4 book ai didi

mysql - 使用JDO自动创建数据库表

转载 作者:行者123 更新时间:2023-11-30 01:24:56 25 4
gpt4 key购买 nike

我是 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 集成的新手。

提前致谢。

最佳答案

对于 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

关于mysql - 使用JDO自动创建数据库表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18114182/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com