【发布时间】:2016-12-06 18:47:26
【问题描述】:
我有一个使用 Hibernate 5 的应用程序,并添加了 JPA 2.1 以使用 CriteriaBuilder.createCriteriaUpdate() 执行批量更新。
但是我需要从 EntityManager.getCriteriaBuilder() 中分配 CriteriaBuilder,我无法获取 EntityManager。
我没有 persistence.xml 文件,我认为 Hibernate 会为我提供一个 EntityManager。
我在 DAO 类中尝试了以下注解:
@Autowired
EntityManager entityManager
和
@PersistenceContext
EntityManager entityManager;
两者都无法注入依赖项。 我也尝试实例化一个 EntityManagerFactory,但它失败了,因为我没有 persistence.xml 文件。所有实体都这样注释:
@Entity
@Table(name = "My_Entity")
public class MyEntity extends BaseEntity {
private static final long serialVersionUID = -8442071276091708080L;
@Column(name = "VALUE", nullable = false)
private BigDecimal value;
...
}
这是我的 pom.xml 的一部分:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>5.1.3.Final</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.1.3.Final</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.1-api</artifactId>
<version>1.0.0.Final</version>
</dependency>
applicationContext.xml
<bean class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor"/>
<bean id="transactionManager"
class="org.springframework.orm.hibernate5.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"/>
<property name="nestedTransactionAllowed" value="true"/>
</bean>
Hibernate 实例化 SessionFactory,有没有办法从中获取 EM?
【问题讨论】:
标签: java spring hibernate jpa hibernate-entitymanager