※この投稿は、丸太式 Advent Calendar 2014の7日目です
現象
NetBeans 8.0.1でJPAの持続性ユニットをHibernateを使うようにして作成すると、EntityManagerFactoryでEntityManagerを作れない。
※Persistence Unitを正しく指定しても、見つからない旨の例外が発生する
原因
NetBeansが生成するHibernate向けのpersistence.xmlの内容で、provider
にorg.hibernate.ejb.HibernatePersistence
が設定されるが、このクラスは@Deprecated
でありなにやら挙動が違うらしい。
対応
persistence.xmlのprovider
に、org.hibernate.jpa.HibernatePersistenceProvider
を設定する。
このクラスは、org.hibernate.ejb.HibernatePersistence
のJavadocに記載されている、代替となるクラスらしい。