没有 persistence.xml 的 Hibernate 和 Guice
Hibernate and Guice without persistence.xml
我正在尝试找到一种使用 Guice 4.1 和 Hibernate 5.2 的方法
我查看了文档,似乎我们需要使用 persistence.xml 文件。我想知道我们是否可以在没有这个 persistence.xml 的情况下使用 Guice 和 Hibernate?有没有办法以编程方式完成 persistence.xml 所做的事情?
谢谢。
理论上,您可以将自己的 javax.persistence.spi.PersistenceUnitInfo
实现到 MyPunit
中,然后执行类似
的操作
import java.util.ServiceLoader;
import javax.persistence.spi.PersistenceProvider;
...
PersistenceProvider pp = ServiceLoader.load(PersistenceProvider.class).iterator().next();
MyPunit conf = new MyPunit();
Map properties = new HashMap();
EntityManagerFactory emf = pp.createContainerEntityManagerFactory(conf, properties);
不过应该没有这个必要。您应该为应用程序创建自己的 persistence.xml。你为什么要避免它?
这是您需要的最小 persistence.xml,无需列出所有 类(方言示例):
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="package.root.to.scan" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<non-jta-data-source>java:comp/env/jdbc/ourdb</non-jta-data-source>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQL95Dialect"/>
</properties>
</persistence-unit>
</persistence>
我正在尝试找到一种使用 Guice 4.1 和 Hibernate 5.2 的方法
我查看了文档,似乎我们需要使用 persistence.xml 文件。我想知道我们是否可以在没有这个 persistence.xml 的情况下使用 Guice 和 Hibernate?有没有办法以编程方式完成 persistence.xml 所做的事情?
谢谢。
理论上,您可以将自己的 javax.persistence.spi.PersistenceUnitInfo
实现到 MyPunit
中,然后执行类似
import java.util.ServiceLoader;
import javax.persistence.spi.PersistenceProvider;
...
PersistenceProvider pp = ServiceLoader.load(PersistenceProvider.class).iterator().next();
MyPunit conf = new MyPunit();
Map properties = new HashMap();
EntityManagerFactory emf = pp.createContainerEntityManagerFactory(conf, properties);
不过应该没有这个必要。您应该为应用程序创建自己的 persistence.xml。你为什么要避免它?
这是您需要的最小 persistence.xml,无需列出所有 类(方言示例):
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="package.root.to.scan" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<non-jta-data-source>java:comp/env/jdbc/ourdb</non-jta-data-source>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQL95Dialect"/>
</properties>
</persistence-unit>
</persistence>