Как настроить Hibernate с файлом JPA 2.0? - PullRequest
2 голосов
/ 24 мая 2011

Документы Hibernate очень четко показывают , как настроить Hibernate с XML .

Вот фрагмент кода, который необходимо сделать:

new Configuration().configure("catdb.cfg.xml")

Теперь, как вынастроить Hibernate, когда вместо файла конфигурации Hibernate у вас есть файл конфигурации JPA 2.0?

  • Как это сделать для META-INF / persistence.xml?
  • Что если мой файлВместо этого он называется META-INF / jpa.xml?

Это для Hibernate 3.6 и JPA 2.0.Моя конечная цель - экспортировать DDL схемы для классов, описанных в файле persistence.xml, поэтому я не хочу создавать SessionFactory.

    Configuration cfg = /* ??? */

    SchemaExport schemaExport = new SchemaExport(cfg);
    schemaExport.setDelimiter(";");
    schemaExport.setOutputFile("ddl.sql");
    boolean script = true, export = false, justDrop = false, justCreate = false;
    schemaExport.execute(script, export, justDrop, justCreate);

Ответы [ 2 ]

3 голосов
/ 27 июля 2011

Предполагая, что вы обычно просматриваете свою конфигурацию, используя имя единицы сохраняемости, вы можете создать org.hibernate.ejb.Ejb3Configuration и заставить его вернуть упакованный org.hibernate.cfg.Configuration:

package test;

import org.hibernate.cfg.Configuration;
import org.hibernate.ejb.Ejb3Configuration;
import org.hibernate.tool.hbm2ddl.SchemaExport;

public class SchemaExportTest {
    public static void main(String[] args) {
        Configuration cfg = new Ejb3Configuration().configure( "persistence-unit-name", null ).getHibernateConfiguration();

        SchemaExport export = new SchemaExport(cfg);

        export.execute(true, false, false, false);
    }
}
0 голосов
/ 24 мая 2011

Если вы используете JPA 2.0 с Hibernate, вам нужен только файл persistence.xml, расположенный в каталоге META-INF.

Настройка файла persistence.xml - это обширная тема, которая зависит от типа создаваемого приложения.

Например, в настоящее время я запускаю приложение с Hibernate 3.6.2, единственным файлом конфигурации которого является persistence.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_2_0.xsd" version="2.0">
   <persistence-unit name="xyz" transaction-type="RESOURCE_LOCAL"/>
</persistence>

Это все, что мне нужно. Во время выполнения, когда я запускаю фабрику диспетчера сущностей, я предоставляю еще несколько свойств, но я намерен продемонстрировать, насколько легко можно настроить JPA с Hibernate.

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