Ошибка синтаксического анализа файла persistence.xml (org.hibernate.MappingException) - PullRequest
0 голосов
/ 06 июля 2011

Я использую JPA и попытался поместить данные конфигурации в файл persistence.xml . Но когда я запускаю приложение, ошибка выглядит следующим образом:

[hibernatetool] org.hibernate.MappingException: invalid configuration
[hibernatetool] org.xml.sax.SAXParseException: Document is invalid: no grammar found.

И я гуглил это. Похоже, я пропустил часть DOCTYPE . Нравится:

<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

Итак, я попытался добавить недостающую часть DOCTYPE. Но приходит новый вопрос. ЧТО я должен добавить?

<?xml version="1.0" encoding="UTF-8"?>
<persistence 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_1_0.xsd"
    version="1.0">
    <persistence-unit name="helloworld">
        <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />
        <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/db" />
        <property name="hibernate.connection.username" value="*****" />
        <property name="hibernate.connection.password" value="*****" />
        <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLInnoDBDialect" />

    </persistence-unit>
</persistence>

PS: Я загрузил несколько примеров проектов jpa и проверил связанные файлы persistence.xml, но обнаружил, что все они отсутствуют в части DOCTYPE.

Нужна ли часть DOCTYPE, я должен спросить, потому что в ней отсутствует так много примеров кода.

Похоже, решение моей проблемы: что я должен поставить для детали DOCTYPE.

1 Ответ

0 голосов
/ 30 сентября 2011

Вы пропустите элемент-свойства, который является дочерним по отношению к единице постоянства и родительским для элементов-свойств.

<persistence-unit name="helloworld">
    <properties>
        <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />
        <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/db" />
          ...
    </properties>
</persistence-unit>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...