teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

4

「試したこと」にNativeQueryを使った事を追記しました。

2016/09/08 02:01

投稿

hitokamu
hitokamu

スコア11

title CHANGED
File without changes
body CHANGED
@@ -146,6 +146,37 @@
146
146
  テーブルの値にNULL値が含まれない場合は値を取得できる事を確認しています。
147
147
  @PrimaryKey(validation=IdValidation.NONE)を追加してもみたのですが、状況は変わりませんでした。
148
148
 
149
+ (2016/09/08追記)
150
+ 最適解かどうかはわからないのですが、NamedQueryを使うのを諦め、NativeQueryでObject型とすればテーブルのデータを取り出せることは確認できました。
151
+ ```
152
+ public AAATbl[] selectAll() {
153
+ try {
154
+ String sql = "SELECT BBB,CCC FROM AAA_TBL";
155
+ List<AAATbl> dest = new ArrayList<>();
156
+ List<Object[]> list = (List<Object[]>) em.createNativeQuery(sql).getResultList();
157
+ Iterator it = list.iterator();
158
+ while (it.hasNext()) {
159
+ AAATbl data = new AAATbl();
160
+ Object[] obj = (Object[]) it.next();
161
+ int i = 0;
162
+ data.bbb((String) obj[i++]);
163
+ data.ccc((String) obj[i++])
164
+ dest.add(data);
165
+ }
166
+ AAATbl[] ret;
167
+ ret = (AAATbl[]) dest.toArray(new AAATbl[dest.size()]);
168
+ return ret;
169
+ } catch (NoResultException e) {
170
+ return null;
171
+ } catch (PersistenceException | DatabaseException databaseEx) {
172
+ logger.fatal(databaseEx);
173
+ return null;
174
+ } catch (Exception e) {
175
+ logger.fatal(e);
176
+ return null;
177
+ }
178
+ }
179
+ ```
149
180
 
150
181
  ###補足情報(言語/FW/ツール等のバージョンなど)
151
182
  環境はNetBeans(8.1)+TomEE(7.0.1)

3

記載したエラーログとテーブル構造に誤りがありましたので訂正します

2016/09/08 02:01

投稿

hitokamu
hitokamu

スコア11

title CHANGED
File without changes
body CHANGED
@@ -13,7 +13,11 @@
13
13
 
14
14
  ```
15
15
  エラーメッセージ
16
- 2016-09-06 20:07:13,933 [http-nio-8080-exec-7] FATAL (AAA.java:321) - javax.persistence.PersistenceException: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.6.3.v20160428-59c81c5): org.eclipse.persistence.exceptions.DatabaseException
16
+ 2016-09-06 19:59:14,832 [http-nio-8080-exec-16] FATAL (AAA.java:48) - javax.persistence.PersistenceException: Exception [EclipseLink-6044] (Eclipse Persistence Services - 2.6.3.v20160428-59c81c5): org.eclipse.persistence.exceptions.QueryException
17
+ Exception Description: The primary key read from the row [ArrayRecord(
18
+ AAA_TBL.BBB => null
19
+ AAA_TBL.CCC => null)] during the execution of the query was detected to be null. Primary keys must not contain null.
20
+ Query: ReadAllQuery(name="AAATbl.findAll" referenceClass=AAATbl sql="SELECT BBB, CCC FROM AAA_TBL")
17
21
 
18
22
  ###該当のソースコード
19
23
  @Entity
@@ -131,7 +135,7 @@
131
135
  ```
132
136
  CREATE TABLE "DATABASE"."AAA_TBL"
133
137
  ( "BBB" VARCHAR2(1 BYTE),
134
- "CCC" VARCHAR2(14 BYTE)
138
+ "CCC" VARCHAR2(1 BYTE)
135
139
  ) SEGMENT CREATION IMMEDIATE
136
140
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS NOLOGGING
137
141
  STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

2

DBのテーブル構造を追記しました。

2016/09/08 01:11

投稿

hitokamu
hitokamu

スコア11

title CHANGED
File without changes
body CHANGED
@@ -126,7 +126,18 @@
126
126
  }
127
127
  }
128
128
  ```
129
-
129
+ ### テーブル構造
130
+ 実際のカラムは32個ありますが、"BBB","CCC"の2つに省略化して記載しています。
131
+ ```
132
+ CREATE TABLE "DATABASE"."AAA_TBL"
133
+ ( "BBB" VARCHAR2(1 BYTE),
134
+ "CCC" VARCHAR2(14 BYTE)
135
+ ) SEGMENT CREATION IMMEDIATE
136
+ PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS NOLOGGING
137
+ STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
138
+ PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
139
+ TABLESPACE "USERS" ;
140
+ ```
130
141
  ###試したこと
131
142
  テーブルの値にNULL値が含まれない場合は値を取得できる事を確認しています。
132
143
  @PrimaryKey(validation=IdValidation.NONE)を追加してもみたのですが、状況は変わりませんでした。
@@ -134,4 +145,5 @@
134
145
 
135
146
  ###補足情報(言語/FW/ツール等のバージョンなど)
136
147
  環境はNetBeans(8.1)+TomEE(7.0.1)
137
- JPAはEclipse Persistence Services - 2.6.3.v20160428-59c81c5を使用しています。
148
+ JPAはEclipse Persistence Services - 2.6.3.v20160428-59c81c5を使用しています。
149
+ DataBaseは Oracle 11.2.0.1.0を使用しています。

1

TomcatEEと記載していましたがTomEEの誤りですので訂正します

2016/09/07 04:36

投稿

hitokamu
hitokamu

スコア11

title CHANGED
File without changes
body CHANGED
@@ -133,5 +133,5 @@
133
133
 
134
134
 
135
135
  ###補足情報(言語/FW/ツール等のバージョンなど)
136
- 環境はNetBeans(8.1)+TomcatEE(7.0.1)
136
+ 環境はNetBeans(8.1)+TomEE(7.0.1)
137
137
  JPAはEclipse Persistence Services - 2.6.3.v20160428-59c81c5を使用しています。