JavaEEにおいて、JPAのfindメソッドで発生するエラー
wildFly(Ver.8.2.0.Final)上で、JPAのecipselink(Ver.2.5.1)を用いたデータアクセスの動作確認をしています。
@Stateful(name = "PersonalInformationDaoBeanEJB")
public class PersonalInformationDaoBean implements Serializable {
private EntityManagerFactory entityManagerFactory;
private EntityManager entityManager;
public PersonalInformationDaoBean() {
}
public void connect() {
this.entityManagerFactory = Persistence.createEntityManagerFactory("persistenceUnit");
this.entityManager = entityManagerFactory.createEntityManager();
}
public Object loadSingleData(Class entityClass, int primaryKey) {
try {
return entityManager.find(entityClass, primaryKey);
} catch (Exception ex) {
return null;
}
}
このクラスのメソッドを各々呼び出すことで、
EntityManagerFactoryとEntityManagerの作成とDBへのデータ取得を行いたいのですが、
JPAフレームワークのfindメソッドを呼ぶ際に、以下のような2つのExceptionが無作為に発生します。
・org.h2.jdbc.JdbcSQLException: スキーマ "SAMPLE" が見つかりません。
・Unknown entity bean class: class Entity.PersonalInformationEntity, please verify that this class has been marked with the @Entity annotation.
ちなみに、persistence.xmlにスキーマ情報、PersonalInformationEntityには@Entityを付加しています。
このことから、他に原因があると考えられますが、現状特定することができていません。
どのような原因が考えられるのでしょうか?
また、以下にデータベースに対応するpersistence.xmlを載せます。
データベースはpostgreSQLを使用し、取得対象のカラムはデータベースに作成済です。
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0"
<persistence-unit name="persistenceUnit">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<class>Entity.PersonalInformationEntity</class>
<properties>
<property name="eclipselink.jdbc.url" value="jdbc:postgresql://localhost:5432/sample"/>
<property name="eclipselink.jdbc.driver" value="org.postgresql.Driver"/>
<property name="eclipselink.jdbc.user" value="dummyUser"/>
<property name="eclipselink.jdbc.password" value="dummyPass"/>
</properties>
</persistence-unit>
</persistence>