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

0 件のコメント:
コメントを投稿