追記2を追加
import javax.persistence.*;
import java.util.*;
```
+
+---
+(追記2)
+
+```
+Parent parent1 = query.findUnique();
+```
+で`parent1`が`null`になるのは、DBにデータが存在しないためです。
+どれかの手順を飛ばしてしまっているのではないかと思います。
+
+下記の2つを確認してください。
+ * DBに「新宿太郎」が登録するされている必要があります。同じ2ページのひとつ前のサンプルで、登録する処理があります。
+ * データの登録処理をやっているのにデータが見つからないとしたら、H2DBをファイルモードにしていない可能性があります。1ページ目の`mem`を`file`に変えるところを見てみてください。
+
前回の回答では説明していませんでしたが、@ITの記事は、Play2.0を使って解説されていて、masahiro_ishさんがお使いのバージョンは、2.2.3ということですので、バージョン間の互換の問題で、サンプルのソースコードがそのまま使えないようです。
例えば、下記の記事で、@NotNull
が使えなくなったと書かれています。
Play! 2.1 アプリを Play! 2.2 に移行した作業の覚え書き - C Sharpens you up
もしそのままお使いになるのでしたら、com.avaje.ebean.validation.*
を使っている箇所はコメントアウトしてください。
今回の例で言うと、Child.java
の14行目(import com.avaje.ebean.validation...
)と26行目(@NotNull
)をコメントアウトしてみてください。
(追記)
Parent.java
の「エラー:シンボルを見つけられません」は、コンパイラーがそのシンボル(クラス名や変数)を見つけることができないというエラーです。ここでは、シンボルがクラスになっていますので、クラスが見つからないのが原因です。
クラスが見つからない理由はいくつか考えられますが、
- クラスが定義されていない、もしくは
CLASSPATH
上に存在しない - パッケージ名を省略しているのに、対応する
import
が無い(例:List
を使うときにjava.util.List
をimport
していない) - 誤字のため存在しないクラスを指定している(例:
ArrayList
と書くべきところでArraylist
になっている)
などがあります。
今回の場合は、import
が無いのがエラーの原因です。
IDEでコーディングしていれば、追加したコードにimportが必要な場合は自動で追加してくれるので、説明には書いていないのかもしれません。
ということで、下記の2つのimportを追加してください。
import javax.persistence.*;
import java.util.*;
(追記2)
Parent parent1 = query.findUnique();
でparent1
がnull
になるのは、DBにデータが存在しないためです。
どれかの手順を飛ばしてしまっているのではないかと思います。
下記の2つを確認してください。
- DBに「新宿太郎」が登録するされている必要があります。同じ2ページのひとつ前のサンプルで、登録する処理があります。
- データの登録処理をやっているのにデータが見つからないとしたら、H2DBをファイルモードにしていない可能性があります。1ページ目の
mem
をfile
に変えるところを見てみてください。
前回の回答では説明していませんでしたが、@ITの記事は、Play2.0を使って解説されていて、masahiro_ishさんがお使いのバージョンは、2.2.3ということですので、バージョン間の互換の問題で、サンプルのソースコードがそのまま使えないようです。 例えば、下記の記事で、`@NotNull`が使えなくなったと書かれています。 [Play! 2.1 アプリを Play! 2.2 に移行した作業の覚え書き - C Sharpens you up](http://cs.hatenablog.jp/entry/2013/12/15/234618) もしそのままお使いになるのでしたら、`com.avaje.ebean.validation.*`を使っている箇所はコメントアウトしてください。 今回の例で言うと、`Child.java`の14行目(`import com.avaje.ebean.validation...`)と26行目(`@NotNull`)をコメントアウトしてみてください。 --- (追記) `Parent.java`の「エラー:シンボルを見つけられません」は、コンパイラーがそのシンボル(クラス名や変数)を見つけることができないというエラーです。ここでは、シンボルがクラスになっていますので、クラスが見つからないのが原因です。 クラスが見つからない理由はいくつか考えられますが、 - クラスが定義されていない、もしくは`CLASSPATH`上に存在しない - パッケージ名を省略しているのに、対応する`import`が無い(例:`List`を使うときに`java.util.List`を`import`していない) - 誤字のため存在しないクラスを指定している(例:`ArrayList`と書くべきところで`Arraylist`になっている) などがあります。 今回の場合は、`import`が無いのがエラーの原因です。 IDEでコーディングしていれば、追加したコードにimportが必要な場合は自動で追加してくれるので、説明には書いていないのかもしれません。 ということで、下記の2つのimportを追加してください。 ``` import javax.persistence.*; import java.util.*; ``` --- (追記2) ``` Parent parent1 = query.findUnique(); ``` で`parent1`が`null`になるのは、DBにデータが存在しないためです。 どれかの手順を飛ばしてしまっているのではないかと思います。 下記の2つを確認してください。 * DBに「新宿太郎」が登録するされている必要があります。同じ2ページのひとつ前のサンプルで、登録する処理があります。 * データの登録処理をやっているのにデータが見つからないとしたら、H2DBをファイルモードにしていない可能性があります。1ページ目の`mem`を`file`に変えるところを見てみてください。