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

回答編集履歴

2

NamedQueryのname指定内容の定義が不足していたため追加。

2016/05/27 05:10

投稿

takyafumin
takyafumin

スコア2335

answer CHANGED
@@ -9,7 +9,7 @@
9
9
  ```Java
10
10
  // Worker02のタイトル検索用メソッド(前方一致)
11
11
  public List findByTitle(String title) {
12
- return em.createNamedQuery(Book02.SELECT_BY_TITLE)
12
+ return em.createNamedQuery(BookEntity02.SELECT_BY_TITLE)
13
13
  .setParameter("title", title + "%")
14
14
  .getResultList();
15
15
  }
@@ -19,11 +19,24 @@
19
19
 
20
20
  ```Java
21
21
  @NamedQueries({
22
- @NamedQuery(name=Book02.SELECT_BY_TITLE,
22
+ @NamedQuery(name=BookEntity02.SELECT_BY_TITLE,
23
23
  query="select b from [テーブル名] b where b.title like :title")})
24
24
  public class BookEntity02 {
25
+
26
+ // NamedQuery定義: タイトルでの検索
27
+ public static final String SELECT_BY_TITLE = "Book.selectBooksByTitle";
25
28
 
26
29
 
27
30
 
28
31
 
29
- ```
32
+ ```
33
+
34
+ ---
35
+
36
+ 追記&修正です。
37
+
38
+ すみません、参考としたページの内容を転記&修正したソースとしたので、不足がありましたね。
39
+ NamedQueryは、Query(問合せ≒SQL)に名前をつけておくものとなります。
40
+ ```name=```で指定するものはこの名前であり、文字列で指定します。
41
+
42
+ これはWorker02からも利用するので、public staticとして定義しておくとタイプミスがなくてよい、という記述の仕方です。

1

findByTitleメソッドの引数が不足していたため追加。

2016/05/27 05:10

投稿

takyafumin
takyafumin

スコア2335

answer CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  ```Java
10
10
  // Worker02のタイトル検索用メソッド(前方一致)
11
- public List findByTitle() {
11
+ public List findByTitle(String title) {
12
12
  return em.createNamedQuery(Book02.SELECT_BY_TITLE)
13
13
  .setParameter("title", title + "%")
14
14
  .getResultList();