BETA

SpringフレームワークでDBから個別にカラムを取得する方法

投稿日:2020-03-31
最終更新:2020-04-22

JavaのSpringフレームワークを使って、どん詰まりしたのでわかりやすく簡潔に問題解決していこうかなと思います。
教科書や参考書に書いてないならブログにすればいいじゃない!

今回はコンストラクタ式の書き方の記事なので、アノテーションとかその他もろもろは省いて書きます。

JPQLの書き方

OracleとかMySQLのSQL文とJPQLのSQL文(少し違うけど)で使用する書き方は少し違います。
OracleのSQL文の場合、

SELECT * FROM item  

JPQLのSQL文の場合、

SELECT i FROM Item i  

nativeQuery = trueにした場合、

“SELECT * FROM item”, nativeQuery = true  

このように*のかわりにテーブルの別名を使って全カラムを取得してきます。
なのでテーブルの別名は必ず必要になります。
一番最後のnativeQueryをtrueにした場合、普通のSQL文を書くことができます。

特定のカラムを取得する

ここでコンストラクタ式が登場します。
こいつが厄介で、上のnativeQueryをtrueにしてもエラーを吐くのでハマる人も多いと思います。

OracleのSQL文の場合、

SELECT item_name FROM item  

コンストラクタ式の書き方

JPQLのSQL文の場合、作ってあると思いますがエンティティを作り、取りたい属性を初期化するコンストラクタを使います。

SELECT new Item(itemName) FROM Item i  

nativeQueryを使用した場合も同様です。

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

@umesanの技術ブログ

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう