Kotlin プログラミング

【Kotlin】SpringbootのJPAで特定のカラムで検索する(Where句)

SpringbootのJPAで簡単な検索方法です。(Kotlinです)

最高に参考になったサイトは以下です。

 

【Spring Data JPA】自動実装されるメソッドの命名ルール

 

findBy + Column名

Repositoryに上記のメソッドを定義します。

以下は、 「Article」というEntityで「userId」カラムをWhereのキーにして検索する例です。

 

注意点としては、メソッドのカラム名部分はアッパーキャメルケースになること。

(例:userId → UserId)

 

Article.kt(Entity)

 

ArticleRepository.kt(Repository)

 

あとはこのメソッドを呼び出してやれば、userIdカラムをキーにして検索ができます。

 

以下、実行例です。

mysql> select * from articles;
+----------+-----------------+-----------+---------+----+
| video_id | discription | title | user_id | id |
+----------+-----------------+-----------+---------+----+
| 9 | | title8989 | 2 | 17 |
| 123 | seconds article | title3 | 3 | 15 |
| 5123 | | title4 | 3 | 16 |
+----------+-----------------+-----------+---------+----+

 

ここから、userId=3のものだけ取り出す。

 

今回は、/article/{userId}のエントリポイントにGETでリクエストすると、userIdをキーにした検索結果を返すようにしたので、

以下のcurlで実行します。

 

❯ curl -X GET http://localhost:8080/article/3 | jq
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 159 0 159 0 0 6174 0 --:--:-- --:--:-- --:--:-- 6360
[
{
"id": 15,
"videoId": "123",
"title": "title3",
"discription": "seconds article",
"userId": 3
},
{
"id": 16,
"videoId": "5123",
"title": "title4",
"discription": "",
"userId": 3
}
]

 

無事に正しい結果が帰ってきました!!(jqコマンドに渡してます。)

うーんすごい。

 

Kotlin + Springboot + MySQL + Dockerを試してみる。

Dockerで立てたMySQLのコンテナに、Kotlin + Springbootからアクセスしてみるだけの記事です。 参考にさせていただいたのはQiitaの以下の記事です。   Docke ...

続きを見る

-Kotlin, プログラミング
-, ,

© 2020 クラインの備忘壺