【问题标题】:Hibernate : Error in persistence.xml - Element 'persistence-unit' cannot contain text content. The content type is defined as element-onlyHibernate:persistence.xml 中的错误 - 元素“persistence-unit”不能包含文本内容。内容类型被定义为仅元素
【发布时间】:2020-09-10 10:07:56
【问题描述】:

我正在使用 Hibernate,并且下面的 persistence.xml 工作正常。但是在 Eclipse 中从 Table 创建一个新的 JPA 实体后,persistence.xml 给出错误 - 元素“persistence-unit”不能包含文本内容。内容类型被定义为仅元素。我已从 persistence.xml 中删除了新类,但错误仍然存​​在。

<persistence version="2.2"
    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_2.xsd">
    <persistence-unit name="FirstJPAProject">
        <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
        <class>com.boi.network.test.entity.Location</class>
        <class>com.boi.network.test.entity.Supportvendor</class>
        <class>com.boi.network.test.entity.Project</class>
        <properties>
            <!-- The JDBC URL to the database instance -->
            <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/boi?useSSL=false&amp;useJDBCCompliantTimezoneShift=true&amp;useLegacyDatetimeCode=false&amp;serverTimezone=UTC"></property>          
            <property name="javax.persistence.jdbc.user" value="dba"></property>
            <property name="javax.persistence.jdbc.password" value="12345"></property>
        </properties>
    </persistence-unit>
</persistence>```

【问题讨论】:

    标签: hibernate persistence.xml persistence-unit jpa-2.2


    【解决方案1】:

    Hibernate 支持自动检测,因此只需删除您的类元素并添加此属性,还可以使用 @Entity 注释来注释您的类。

    <persistence version="2.2"
        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_2.xsd">
        <persistence-unit name="FirstJPAProject">
            <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
            <!--<class>com.boi.network.test.entity.Location</class>
            <class>com.boi.network.test.entity.Supportvendor</class>
            <class>com.boi.network.test.entity.Project</class>-->
            <properties>
                <!-- The JDBC URL to the database instance -->
                <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/boi?useSSL=false&amp;useJDBCCompliantTimezoneShift=true&amp;useLegacyDatetimeCode=false&amp;serverTimezone=UTC"></property>          
                <property name="javax.persistence.jdbc.user" value="dba"></property>
                <property name="javax.persistence.jdbc.password" value="12345"></property>
                <property name="hibernate.archive.autodetection" value="class, hbm"/>
            </properties>
        </persistence-unit>
    </persistence>```
    

    看看这个answer

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-17
      • 1970-01-01
      • 2011-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-13
      • 2016-05-16
      相关资源
      最近更新 更多