Создание EntityManagerFactory вручную? - PullRequest
3 голосов
/ 06 мая 2011

Кто-нибудь знает, как создать EntityManagerFactory вручную?Когда я говорю вручную, я имею в виду, что он потребляет специальный persistence.xml файл?Это то, что я пробовал, и все мне не удалось.

Configuration configuration = new Configuration();
InputStream is = JPAUtil.class.getResourceAsStream("/s-persistence.xml");
configuration.addInputStream(is);
_entityManagerFactory = Persistence.createEntityManagerFactory(
      puType.persistenceName, configuration.getProperties());

s-persistence.xml выглядит так:

<?xml version="1.0"?> 
<persistence version="1.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_1_0.xsd">
     <persistence-unit name="S_DATABASE" transaction-type="RESOURCE_LOCAL">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <properties>
            <property value="false" name="hibernate.show_sql"/>
            <property value="org.hibernate.dialect.OracleDialect" name="hibernate.dialect"/>
            <property value="oracle.jdbc.driver.OracleDriver" name="hibernate.connection.driver_class "/>
            <property value="jdbc:oracle:thin:@xxx.xxx.xxx.xxx:TEST" name="hibernate.connection.url"/>
            <property value="TESTOWNER" name="hibernate.connection.username"/>
            <property value="TEST" name="hibernate.connection.password"/>
            <property value="2" name="hibernate.connection.isolation"/>
        </properties>
    </persistence-unit>
</persistence>

Я получаю следующую ошибку при запуске кода Java.

ERROR   :: org.hibernate.util.XMLHelper|Error parsing XML: XML InputStream(2) Document     is invalid: no grammar found. 
ERROR   :: org.hibernate.util.XMLHelper|Error parsing XML: XML InputStream(2) Document root element "persistence", must match DOCTYPE root "null". 
org.hibernate.MappingException: invalid mapping

Как будто он ищет специфичный для hibernate синтаксис в persistence.xml.Я также попробовал EJB3Configuration.Похоже, мой XML правильно сформирован, что сбивает меня с толку, почему я получаю эту ошибку.

1 Ответ

0 голосов
/ 06 мая 2011

Я думаю, что вы столкнулись с проблемой, что

http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd

может быть недоступен, так что проверка XML-файла по нему не может работать.

Постарайтесь не дать схемурасположение как это:

<persistence xmlns="http://java.sun.com/xml/ns/persistence">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...