[PersistenceUnit: <name>]: невозможно создать EntityManagerFactory - PullRequest
6 голосов
/ 03 февраля 2012

Как указано в теме, моя проблема в EntityManagerFactory не может быть построена.Я использую Maven + Hibernate.Я подключаюсь к MySQL DB (<jdbc://mysql://localhost:3306/<dbname>).

Странная вещь во время отладки в Eclipse, она работает нормально.Но когда я собираю его, используя сборку Maven, файл JAR выдает такую ​​ошибку.Я уже проверил файл Manifest, и все необходимые JAR-файлы были включены в Class-Path.Ниже приведена ошибка JAR, отображаемая в консоли:

================================================================================

Feb 3, 2012 5:01:16 PM org.hibernate.annotations.common.Version <clinit>
INFO: HCANN000001: Hibernate Commons Annotations {4.0.1.Final}
Feb 3, 2012 5:01:16 PM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {4.0.1.Final}
Feb 3, 2012 5:01:16 PM org.hibernate.cfg.Environment <clinit>
INFO: HHH000206: hibernate.properties not found
Feb 3, 2012 5:01:16 PM org.hibernate.cfg.Environment buildBytecodeProvider
INFO: HHH000021: Bytecode provider name : javassist
Feb 3, 2012 5:01:16 PM org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000402: Using Hibernate built-in connection pool (not for production use!)
Feb 3, 2012 5:01:16 PM class <name>.<name>.<name> <name>
SEVERE: [ERROR]: [PersistenceUnit: <name>] Unable to build EntityManagerFactory
[ERROR]: [PersistenceUnit: <name>] Unable to build EntityManagerFactory

===========================================================================

ниже мое постоянство. Xml:

<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="<name>">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>classname</class>
<properties>
<!-- <property name="hibernate.ejb.cfgfile" value="/classifyPE.cfg.xml"/> -->
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />
<property name="hibernate.connection.password" value="<value>" />
<property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/<name>" />
<property name="hibernate.connection.username" value="root" />
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
</properties>
</persistence-unit>
</persistence>

===========================================================================

Что я здесь не так делаю?Или чего мне не хватает?
Как уже упоминалось, он работает на Debug.Но когда я упаковываю его в JAR (со всеми необходимыми JAR, присутствующими в папке libs), это не так.

Ответы [ 4 ]

4 голосов
/ 02 мая 2012

добавьте это в ваш xml файл

<property name="javax.persistence.validation.mode">none</property>
2 голосов
/ 03 февраля 2012

<class>classname</class>

Я подозреваю, что ваша сущность не имеет имени classname, поэтому попробуйте указать полное имя classpath-имени (например, foo.bar.realclassname, где realclassname - это имя вашегосубъект-класс).

0 голосов
/ 03 февраля 2012

Попробуйте переименовать свой блок персистентности. Это важно, поскольку имя используется для идентификации единицы сохраняемости, связанной с каждым EntityManager.

Итак:

<persistence-unit name="<name>">

следует заменить на (например):

<persistence-unit name="myUnit">
0 голосов
/ 03 февраля 2012

Файл persistence.xml должен находиться в папке META-INF в корне банки.Проверьте, есть ли он там или нет.Я предполагаю, что это чисто проблема, связанная с classpath.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...