Search code examples
javahibernatejpapersistence

Can not find the declaration of element 'persistence'


Have put the persistence.xml in the classpath of the project in eclipse because before the error was that the file was not found. Now gives this error:

Caused by: javax.persistence.PersistenceException: Invalid persistence.xml. Error parsing XML [line : -1, column : -1] : cvc-elt.1: Can not find the declaration of element 'persistence'

<persistence xmlns="http://java.sun.com/xml/ns/persistence"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.1"
             xsi:schemalocation="http://java.sun.com/xml/ns/persistence
                                 http://java.sun.com/xml/ns/persistence/persistence_2_1.xsd">
    <persistence-unit name="default" transaction-type="RESOURCE_LOCAL">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <properties>
            <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />
            <property name="javax.persistence.jdbc.url" value="jdbc:postgresql://localhost:5432/Automoveis" />
            <property name="javax.persistence.jdbc.user" value="postgres" />
            <property name="javax.persistence.jdbc.password" value="1234" />
            <property name="javax.persistence.jdbc.driver" value="org.postgresql.jdbc.Driver" />
            <property name="hibernate.show_sql" value="true" />
            <property name="hibernate.format_sql" value="true" />
            <property name="hibernate.hbm2ddl.auto" value="create" />
        </properties>
    </persistence-unit>
</persistence>

Solution

  • Solved!

    I do not know exactly what was wrong, but it worked well:

    <persistence version="2.0"   
    xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">    
    
    <persistence-unit name="default" transaction-type="RESOURCE_LOCAL">    
        <provider>org.hibernate.ejb.HibernatePersistence</provider>    
    
        <properties>    
            <property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver" />    
            <property name="javax.persistence.jdbc.url" value="jdbc:postgresql://localhost:5432/Automoveis" />    
            <property name="javax.persistence.jdbc.user" value="postgres" />    
            <property name="javax.persistence.jdbc.password" value="1234" />    
            <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />               
            <property name="hibernate.hbm2ddl.auto" value="update" />    
            <property name="hibernate.show_sql" value="true" />    
            <property name="hibernate.format_sql" value="true"/>    
        </properties>    
    </persistence-unit>