目標、達成したいこと
Spring Bootで開発を行っているのですが、ゼロ埋めについて聞きたいことあります。
ServiceクラスからRepositoryクラスに「001」という値を渡して、
Repositoryクラスで受け取った「001」をもとにクエリを発行してDBからデータを取得したいです。
上手くいかないところ
Serviceクラスで「1」を「001」とゼロ埋めをしてRepositoryクラスに「001」を渡しているのですがRepositoryクラスで受け取った値を見ると「1」になってしまっており、上手くいきません。
(Serviceクラスで「001」になっているのは確認済みです。)
これはゼロ埋めの問題なのでしょうか?
それとも、何か他の要因なのでしょうか?
ご教授お願い致します。
試したこと・調査したこと
・下記のサイトを参考にさせていただき、String.formatを用いてゼロ埋めをしました。
https://qiita.com/kikkutonton/items/400dcfc343864028800e
・下記のようにServiceクラスを書きました
java
1String num = "1"; 2String numFormat = String.format("%03d", num); 3 4String find = musicRepository.findByName(numFormat).getMusicname();
・Repositoryクラスで下記のようにコードを書きましたが、nameのところに「001」ではなく、「1」が入ってきています。
java
1@Query(value = "SELECT * " 2 + " FROM music_info " 3 + " WHERE NAME = :name", nativeQuery = true) 4 Music findByName(@Param("name") String name); 5
・何か型の問題かと思い、
Music findByName(@Param("name") String name);のStringのところをLong型に試してみました。
・追記なのですが
String find = musicRepository.findByName(numFormat).getMusicname();の
findByNameの引数に「001」をべたに書いてもダメでした。
補足情報(FW/ツールのバージョンなど)
Windows10
Spring Boot version2.2.1.RELEASE