質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Hibernate

HibernateとはJava言語のobject-relational mapping (ORM)ライブラリであり、Object/Relational Mappingよりはるか多くの方法でアプリケーションをPOJOで機能付けることができます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

1回答

3620閲覧

DB検索時にクエリエラーが発生する

Linkey

総合スコア77

Hibernate

HibernateとはJava言語のobject-relational mapping (ORM)ライブラリであり、Object/Relational Mappingよりはるか多くの方法でアプリケーションをPOJOで機能付けることができます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2017/07/08 02:19

Hibernateを使ってWebアプリケーションを作成しています。DBを検索した時にクエリエラーが発生しました。検索ではpreCustomerIdという仮会員IDのみを取得したいです。エラーについて調べてみましたが有力な解決方法が見つかりませんでした。Hibernate JPAにお詳しい方がいましたらご回答をお願いいたします。

※質問の文字数制限の都合でエラーメッセージはキャプチャーとして掲載させていただきます。
イメージ説明

イメージ説明

イメージ説明

イメージ説明

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; 13 14/** 15 * 仮ユーザーテーブルにアクセスする 16 * 17 * @author user 18 * 19 */ 20public class PreUserDAO implements Closeable { 21 22 private final static String SQL_FIND_ALL_PRE_USER_ID = "PreUser.findAllPreCostomerId"; 23 24 private EntityManager em = null; 25 EntityTransaction et = null; 26 27 /** 28 * 発番された仮会員IDがテーブルに存在するかどうかを確認する 29 */ 30 public void findAllPreUserId() { 31 32 EntityManager em = null; 33 try { 34 35 em = EmProvider.getInstance().getEntityManagerFactory().createEntityManager(); 36 37 if(em == null){ 38 System.out.println("emの設定に失敗"); 39 } 40 41 TypedQuery<PreUserEntity> query = em.createNamedQuery(SQL_FIND_ALL_PRE_USER_ID, PreUserEntity.class); 42 43 if(query == null){ 44 System.out.println("検索結果のマッピングに失敗"); 45 } 46 47 List<PreUserEntity> entity = query.getResultList(); 48 49 if(entity.size() != 0){ 50 System.out.println("検索成功しました。"); 51 } else { 52 System.out.println("検索結果に失敗しました。"); 53 } 54 } 55 catch(Exception e) { 56 e.printStackTrace(); 57 } 58 finally { 59 if(em != null) { 60 em.close(); 61 } 62 EmProvider.getInstance().closeEmf(); 63 } 64 } 65 66 @Override 67 public void close() throws IOException { 68 if (em != null) { 69 em.close(); 70 } 71 } 72} 73

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.find", 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}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

queryのFROM句で指定しているテーブル名は、実テーブル名ではなく、クラスを指定します。

java

1 @NamedQuery(name = "PreUser.find", query = "SELECT p FROM PreUser p"), 2 @NamedQuery(name = "PreUser.findAllPreCostomerId", query = "SELECT NEW registration.entity.PreUserEntity (p.preCustomerId) FROM PreUser p")

投稿2017/07/08 03:21

mr-hisa-child

総合スコア294

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Linkey

2017/07/12 15:20

ありがとうございました。無事に解決できました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問