https://teratail.com/questions/75995が見づらくなってしまったため新しく質問させていただきます。JavaでMavenプロジェクトを使ってWebアプリケーションの開発をしているのですが、EntityManagerの設定がうまくいかず、ServletExceptionが発生してしまいました。
EntityManagerの設定は「https://stackoverflow.com/questions/4543947/when-should-entitymanagerfactory-instance-be-created-opened」を参考にしています。
実装内容またはファイルの設定内容は以下の通りです。
persistence.xmlの中身
配置場所:/java-restaurant/src/main/resources/META-INF/persistence.xml
DAOクラス
java
1package registration.dao; 2 3import java.io.Closeable; 4import java.io.IOException; 5import java.util.List; 6 7import javax.persistence.EntityManager; 8import javax.persistence.EntityTransaction; 9import javax.persistence.TypedQuery; 10 11import registration.entity.PreUserEntity; 12import util.dao.EmProvider; 13import util.dao.ResourceDAO; 14 15/** 16 * 仮ユーザーテーブルにアクセスする 17 * 18 * @author user 19 * 20 */ 21public class PreUserDAO implements Closeable, ResourceDAO { 22 23 private final static String SQL_FIND_ALL_PRE_USER_ID = "PreUser.findAllPreUserId"; 24 25 //@Inject 26 private EntityManager em = null; 27 EntityTransaction et = null; 28 29 /** 30 * 発番された仮会員IDがテーブルに存在するかどうかを確認する 31 */ 32 public void findAllPreUserId() { 33 34 EntityManager em = null; 35 try { 36 37 em = EmProvider.getInstance().getEntityManagerFactory().createEntityManager(); 38 39 if(em == null){ 40 System.out.println("emの設定に失敗"); 41 } 42 43 TypedQuery<PreUserEntity> query = em.createNamedQuery(SQL_FIND_ALL_PRE_USER_ID, PreUserEntity.class); 44 45 if(query == null){ 46 System.out.println("検索結果のマッピングに失敗"); 47 } 48 49 List<PreUserEntity> entity = query.getResultList(); 50 51 if(entity.size() != 0){ 52 System.out.println("検索成功しました。"); 53 } else { 54 System.out.println("検索結果に失敗しました。"); 55 } 56 } 57 catch(Exception e) { 58 e.printStackTrace(); 59 } 60 finally { 61 if(em != null) { 62 em.close(); 63 } 64 EmProvider.getInstance().closeEmf(); 65 } 66 } 67 68 @Override 69 public void close() throws IOException { 70 if (em != null) { 71 em.close(); 72 } 73 } 74}
Entityクラス
java
1package registration.entity; 2 3import java.io.Serializable; 4import java.util.Date; 5 6import javax.persistence.Column; 7import javax.persistence.Entity; 8import javax.persistence.Id; 9import javax.persistence.Table; 10import javax.persistence.Temporal; 11import javax.persistence.TemporalType; 12 13import org.hibernate.annotations.NamedQueries; 14import org.hibernate.annotations.NamedQuery; 15 16/** 17 * The persistent class for the pre_user database table. 18 * 19 */ 20@Entity 21@Table(name = "pre_user") 22@NamedQueries({ 23 @NamedQuery(name = "PreUser.findAllPreUserId", query = "SELECT p FROM pre_user p"), 24 @NamedQuery(name = "PreUser.findAllPreCostomerId", query = "SELECT NEW registration.entity.PreUserEntity (p.preCustomerId) FROM pre_user p") 25}) 26 27public class PreUserEntity implements Serializable { 28 29 private static final long serialVersionUID = 1L; 30 31 @Id 32 @Column(name="pre_customer_id") 33 private String preCustomerId; 34 35 @Column(name="process_name") 36 private String processName; 37 38 @Column(name="process_status") 39 private String processStatus; 40 41 @Temporal(TemporalType.TIMESTAMP) 42 @Column(name="register_time") 43 private Date registerTime; 44 45 @Column(name="register_user") 46 private String registerUser; 47 48 @Temporal(TemporalType.TIMESTAMP) 49 @Column(name="update_time") 50 private Date updateTime; 51 52 @Column(name="update_user") 53 private String updateUser; 54 55 public PreUserEntity() { 56 } 57 58 public PreUserEntity(String preCostomerId) { 59 this.preCustomerId = preCostomerId; 60 } 61 62 public String getPreCustomerId() { 63 return this.preCustomerId; 64 } 65 66 public void setPreCustomerId(String preCustomerId) { 67 this.preCustomerId = preCustomerId; 68 } 69 70 public String getProcessName() { 71 return this.processName; 72 } 73 74 public void setProcessName(String processName) { 75 this.processName = processName; 76 } 77 78 public String getProcessStatus() { 79 return this.processStatus; 80 } 81 82 public void setProcessStatus(String processStatus) { 83 this.processStatus = processStatus; 84 } 85 86 public Date getRegisterTime() { 87 return this.registerTime; 88 } 89 90 public void setRegisterTime(Date registerTime) { 91 this.registerTime = registerTime; 92 } 93 94 public String getRegisterUser() { 95 return this.registerUser; 96 } 97 98 public void setRegisterUser(String registerUser) { 99 this.registerUser = registerUser; 100 } 101 102 public Date getUpdateTime() { 103 return this.updateTime; 104 } 105 106 public void setUpdateTime(Date updateTime) { 107 this.updateTime = updateTime; 108 } 109 110 public String getUpdateUser() { 111 return this.updateUser; 112 } 113 114 public void setUpdateUser(String updateUser) { 115 this.updateUser = updateUser; 116 } 117}
pom.xmlの中身
xml
1<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 2 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 3 <modelVersion>4.0.0</modelVersion> 4 <groupId>com.sample.mvnproject</groupId> 5 <artifactId>java-restaurant</artifactId> 6 <packaging>war</packaging> 7 <version>0.0.1-SNAPSHOT</version> 8 <name>java-restaurant Maven Webapp</name> 9 <url>http://maven.apache.org</url> 10 <properties> 11 <hibernate.version>4.3.10.Final</hibernate.version> 12 </properties> 13 <dependencies> 14 <dependency> 15 <groupId>junit</groupId> 16 <artifactId>junit</artifactId> 17 <version>3.8.1</version> 18 <scope>test</scope> 19 </dependency> 20 <!-- added servlet info --> 21 <dependency> 22 <groupId>javax.servlet</groupId> 23 <artifactId>javax.servlet-api</artifactId> 24 <version>3.1.0</version> 25 </dependency> 26 <!-- added JSP info --> 27 <dependency> 28 <groupId>javax.servlet</groupId> 29 <artifactId>jstl</artifactId> 30 <version>1.2</version> 31 </dependency> 32 <!-- added JSTL info --> 33 <dependency> 34 <groupId>javax.servlet.jsp</groupId> 35 <artifactId>javax.servlet.jsp-api</artifactId> 36 <version>2.3.1</version> 37 </dependency> 38 <!-- added mockit for ut --> 39 <dependency> 40 <groupId>org.mockito</groupId> 41 <artifactId>mockito-all</artifactId> 42 <version>1.9.5</version> 43 </dependency> 44 <!-- added Hibernate info --> 45 <dependency> 46 <groupId>org.hibernate</groupId> 47 <artifactId>hibernate-annotations</artifactId> 48 <version>3.5.6-Final</version> 49 </dependency> 50 <dependency> 51 <groupId>org.hibernate</groupId> 52 <artifactId>hibernate-core</artifactId> 53 <version>5.2.10.Final</version> 54 </dependency> 55 <dependency> 56 <groupId>org.eclipse.persistence</groupId> 57 <artifactId>org.eclipse.persistence.jpa</artifactId> 58 <version>2.6.4</version> 59 </dependency> 60 <dependency> 61 <groupId>org.springframework</groupId> 62 <artifactId>spring-webmvc</artifactId> 63 <version>4.3.8.RELEASE</version> 64 </dependency> 65 <!-- added MySQL Connector Info --> 66 <dependency> 67 <groupId>mysql</groupId> 68 <artifactId>mysql-connector-java</artifactId> 69 <version>5.1.42</version> 70 </dependency> 71 <!-- added log4j info --> 72 <dependency> 73 <groupId>org.apache.logging.log4j</groupId> 74 <artifactId>log4j-core</artifactId> 75 <version>2.7</version> 76 </dependency> 77 <dependency> 78 <groupId>org.apache.logging.log4j</groupId> 79 <artifactId>log4j-api</artifactId> 80 <version>2.7</version> 81 </dependency> 82 <dependency> 83 <groupId>org.hibernate.javax.persistence</groupId> 84 <artifactId>hibernate-jpa-2.1-api</artifactId> 85 <version>1.0.0.Final</version> 86 </dependency> 87 <!-- added jBcrypt --> 88 <dependency> 89 <groupId>org.mindrot</groupId> 90 <artifactId>jbcrypt</artifactId> 91 <version>0.4</version> 92 </dependency> 93 <!-- persistence --> 94 </dependencies> 95 <build> 96 <finalName>java-restaurant</finalName> 97 <plugins> 98 <plugin> 99 <groupId>org.apache.maven.plugins</groupId> 100 <artifactId>maven-compiler-plugin</artifactId> 101 <version>3.1</version> 102 <configuration> 103 <source>1.8</source> 104 <target>1.8</target> 105 <encoding>UTF-8</encoding> 106 </configuration> 107 </plugin> 108 <!-- added tomcat maven plugin info --> 109 <plugin> 110 <groupId>org.apache.tomcat.maven</groupId> 111 <artifactId>tomcat7-maven-plugin</artifactId> 112 <version>2.2</version> 113 <configuration> 114 <path>/foo</path> 115 <server>tomcat-localhost</server> 116 <url>http://localhost:8080/manager/text</url> 117 </configuration> 118 </plugin> 119 </plugins> 120 </build> 121</project>
JPA、Hibernateにお詳しい方がいましたら、または原因に当たりがついた方がいらっしゃいましたらご回答をお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/06/25 14:07
2017/06/25 15:24
2017/06/26 14:59
2017/06/29 12:12
2017/06/29 15:16
2017/06/29 23:13
2017/06/29 23:33
2017/06/30 16:31
2017/06/30 17:07
2017/07/06 16:04