如何在jpa持久性xml文件中自动创建表?

时间:2015-09-30 19:08:34

标签: java hibernate exception jpa

我正在使用eclipse IDE。我也尝试了两个。但是失败..当我在我的mysql数据库中手动创建表时,我的完整程序运行良好...我希望创建表自动关于实体类。

<property name="hibernate.hbm2ddl.auto" value="create"/>

<property name="hibernate.hbm2ddl.auto">update</property>

这里是我的持久文件:

<?xml version="1.0" encoding="UTF-8"?>
  <persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence"     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="JpaTest2" transaction-type="RESOURCE_LOCAL">

     <class>com.jpa.Employee</class>

    <properties>

        <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/hibernate"/>
        <property name="javax.persistence.jdbc.user" value="umar"/>
        <property name="javax.persistence.jdbc.password" value="umar"/>
        <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
        <property name="hibernate.show_sql" value="true"/>
        <property name="hibernate.format_sql" value="true"/>


    </properties>
</persistence-unit>

2 个答案:

答案 0 :(得分:13)

不要使用Hibernate特定选项。 JPA 2.1提供

javax.persistence.schema-generation.database.action

可以设置为“创建”,“ drop ”,“ drop-and-create ”,“ none ”。 这样就可以保持代码JPA实现的独立性

答案 1 :(得分:0)

检查您的实体。你错过了@Table注释吗?例外情况清楚地表明该表缺少'hibernate.employee'

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'hibernate.employee' doesn't exist at ...

如果您定义了一个使用 hibernate。添加所有表的命名策略,那么请确保在MySql中创建表。