私はHibernate 5でアプリケーションを持っていて、JPA 2.1を追加してCriteriaBuilder.createCriteriaUpdate()で一括更新を実行しました。JPA 2.1とHibernate5でEntityManagerにアクセスできない
しかし、CriteriaBuilderをEntityManager.getCriteriaBuilder()から割り当てる必要があり、EntityManagerを取得できません。
私はpersistence.xmlファイルを持っていないので、Hibernateが私のためにEntityManagerを提供すると思いました。
Iは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を取得するには?
質問が更新されました。私はSpringを使用しますが、Spring Bootは使用しません。あなたが言及したパッケージを追加することはできますか?私はアノテーションだけを使ってデータをマップします。 –
beanのsessionFactoryもどこかで定義していますか?データソース宣言はどうですか? JPAを使用する前にアプリを使っていましたか? –
これまでにそのメッセージをコミットするつもりはありませんでした。 –