入院中のみけです。
入院中に作業療法というのがあって、
そちらへの参加が求められていますが、
プログラミングのほうが楽しいので、
ずっとプログラム書いています。
(大半はぼーっとしていますけど)
今更JPAにハマってみる
というわけで、JPA + Hibernate的なDB周りの
プログラムの勉強を今更やっているわけですが、
昨日ハマったあたりを中心にブログに残しておこうと思います。
プログラムの構成
こんな感じ。
persistence.xml
にHibernateを使うよという設定を書いて、JPQLは
orm.xml
に書いてあります。persistence.xml
とorm.xml
は次のような感じ。persistence.xml
orm.xml
orm.xml
を参照しているプログラムはこんな感じ。JPAのnamedQueryというのを使って、参照しています。
なお、モデルとなっているクラスは次。
ハマったのは
さて、これを
persistence-unit
をtest
にして、次のようなテストを実行します。
するとこんなエラーが発生します。
おい、namedQueryが間違っているよと怒られます。
というわけで、該当箇所のソースコードを読んでいたのですが、
どうも
Scanner
というのが@Entity
アノテーションを付与されたクラスをスキャンしているっぽいのですが、
なんか、そういうことをしているっぽいコードが見当たらない(´・ω・`)
困ったらStack Overflow先生
というわけで、ググったら答えっぽいのがありました。
[PersistenceUnit:
これの2つ目の回答で、
<class>classname</class>
のクラスネームをちゃんと書いているのかよ!としつこく確認しています。
で、僕がハマっていたのはそれっぽい。
<class>classname</class>
を追加してあげたら、普通にテスト通りました。
おそらく初歩的なミスなんでしょうね(´・ω・`)
0 件のコメント:
コメントを投稿