我有以下实体类(在Groovy中):

import javax.persistence.Entity
import javax.persistence.Id
import javax.persistence.GeneratedValue
import javax.persistence.GenerationType

@Entity
public class ServerNode {

  @Id
  @GeneratedValue(strategy = GenerationType.AUTO)
  Long id

  String firstName
  String lastName

}

还有我的坚持.xml:

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0">
    <persistence-unit name="NewPersistenceUnit">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <properties>
            <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/Icarus"/>
            <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
            <property name="hibernate.connection.username" value="root"/>
            <property name="hibernate.connection.password" value=""/>
            <property name="hibernate.archive.autodetection" value="class"/>
            <property name="hibernate.show_sql" value="true"/>
            <property name="hibernate.format_sql" value="true"/>
            <property name="hbm2ddl.auto" value="create"/>
        </properties>
        <class>net.interaxia.icarus.data.models.ServerNode</class>
    </persistence-unit>
</persistence>

还有 playbook :

import javax.persistence.EntityManager
import javax.persistence.EntityManagerFactory
import javax.persistence.Persistence
import net.interaxia.icarus.data.models.ServerNode

def factory = Persistence.createEntityManagerFactory("NewPersistenceUnit")
def manager = factory.createEntityManager()

manager.getTransaction().begin()

manager.persist new ServerNode(firstName: "Test", lastName: "Server")

manager.getTransaction().commit()

数据库Icarus存在,但当前没有表.我希望Hibernate根据实体类自动创建和/或更新表.我该如何做到这一点?

推荐答案

我不知道在前面留下hibernate分是否有区别.

reference表示应该是hibernate.hbm2ddl.auto

值为create将在sessionFactory创建时创建表,并保持它们不变.

值为create-drop将创建表,然后在关闭sessionFactory时删除它们.

也许你应该明确地设置javax.persistence.Table注释?

希望这有帮助.

Mysql相关问答推荐

—符号在哪里条件""

如何将MySQL与AS&Quot;语法一起用于存储过程返回的表?

MySQL INSERT INSERT ON DIPLICATE KEY UPDATE WITH COMPAY PRIMARY KEY失败

无条件理解MySQL中内连接和交叉连接的相似性

MySQL:返回所有条件(但不满足其他条件)为真的所有结果

Mysql:使用like Select 查询

Group_CONCAT CASE 乘法输出

使用 presto 或 mysql 添加每个组中的缺失值

如何进行查询以在两个不同的列中搜索两个不同的数据字符串?

有人可以帮我用 R 编程解决这个问题吗?

mysql数据库数据文件夹中的DESKTOP-7JFP5MF-bin.000001文件有什么用?

如何在每个国家/地区查询 GHTorrent(类 SQL 语言)的最常用语言

是否可以从 .SQL 文件中计算表中的行数?

If else on WHERE 子句

MySQL计算特定值的列

从mysql中的大表中快速 Select 随机行

带有 OuterRef 的简单子查询

Python 是否支持 MySQL 准备好的语句?

MySQL - 重复表

在 MySQL 中仅 Select 仅包含字母数字字符的行