У меня есть приложение с Hibernate 5 и добавлено JPA 2.1 для выполнения массовых обновлений с помощью CriteriaBuilder.createCriteriaUpdate().Не удается получить доступ к EntityManager с JPA 2.1 и Hibernate5
Но мне нужно назначить CriteriaBuilder из EntityManager.getCriteriaBuilder(), и я не могу получить 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, есть способ получить ЭМ от него?
Вопрос обновлен. Я использую Spring, но не Spring Boot, может быть, я могу просто добавить этот пакет, который вы упомянули? Я использую только аннотации, чтобы отображать данные. –
Вы также определите beans sessionFactory? Как насчет объявления данных? Было ли приложение работать перед использованием JPA? –
oops не означает, что это сообщение было принято раньше, это не было сделано. –