QA@IT
«回答へ戻る

追記2を追加

150
 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.Listimportしていない)
  • 誤字のため存在しないクラスを指定している(例:ArrayListと書くべきところでArraylistになっている)

などがあります。

今回の場合は、importが無いのがエラーの原因です。
IDEでコーディングしていれば、追加したコードにimportが必要な場合は自動で追加してくれるので、説明には書いていないのかもしれません。

ということで、下記の2つのimportを追加してください。

import javax.persistence.*;
import java.util.*;

(追記2)

Parent parent1 = query.findUnique();

parent1nullになるのは、DBにデータが存在しないためです。
どれかの手順を飛ばしてしまっているのではないかと思います。

下記の2つを確認してください。

  • DBに「新宿太郎」が登録するされている必要があります。同じ2ページのひとつ前のサンプルで、登録する処理があります。
  • データの登録処理をやっているのにデータが見つからないとしたら、H2DBをファイルモードにしていない可能性があります。1ページ目のmemfileに変えるところを見てみてください。
前回の回答では説明していませんでしたが、@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`に変えるところを見てみてください。

(追記)

150
 
 
 もしそのままお使いになるのでしたら、`com.avaje.ebean.validation.*`を使っている箇所はコメントアウトしてください。
-今回の例で言うと、Child.javaの14行目(`import com.avaje.ebean.validation...`)と26行目(`@NotNull`)をコメントアウトしてみてください。
+今回の例で言うと、`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.*;
+```

前回の回答では説明していませんでしたが、@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.Listimportしていない)
  • 誤字のため存在しないクラスを指定している(例:ArrayListと書くべきところでArraylistになっている)

などがあります。

今回の場合は、importが無いのがエラーの原因です。
IDEでコーディングしていれば、追加したコードにimportが必要な場合は自動で追加してくれるので、説明には書いていないのかもしれません。

ということで、下記の2つのimportを追加してください。

import javax.persistence.*;
import java.util.*;
前回の回答では説明していませんでしたが、@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.*;
```

回答を投稿

前回の回答では説明していませんでしたが、@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)をコメントアウトしてみてください。

前回の回答では説明していませんでしたが、@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`)をコメントアウトしてみてください。