making / hajiboot-samples

書籍「はじめてのSpring Boot」のサポートページ
133 stars 67 forks source link

3-1で追加するCustomerServiceクラスのエラーについて #77

Closed ghost closed 6 years ago

ghost commented 6 years ago

(STSは3.9.4RELEASEです。) CustomerServiceクラスのfineOneメソッドと、deleteメソッドでそれぞれ以下のメソッド呼びだしていますが、エラーとなってしまいます。(GitHubのCustomerRepository.java、CustomerService.javaのコードをそのまま使用した結果になります。)

customerRepository.findOne(id) →型 QueryByExampleExecutor のメソッド findOne(Example<"S">) は 引数 (Integer) に適用できません ※エスの前後は、本来はダブルクォーテーションは付きません。取り消し線が出て来てしまうのを 回避するために囲っています。

customerRepository.delete(id) →型 CrudRepository<Customer,Integer> のメソッド delete(Customer) は 引数 (Integer) に適用できません

ここはSpring Data JPAで定義されているCRUDメソッド部分なのだと思うのですが、 Spring Data JPA側のCRUDメソッドの定義が変わったのでしょうか? 分かる範囲で構いませんのでご回答頂けると助かります。

making commented 6 years ago

Spring Boot 2.0を使っていませんか? 書籍は1系で書かれています。2では非互換な変更が含まれているので一部そのままでは動きません

ghost commented 6 years ago

ご回答ありがとうございます。 確認したところ、おっしゃる通り、2.0.2.RELEASEとなっておりました。 SPRING INITIALIZRでSpring Bootのバージョンを特に気にせずに Projectを作っていたことに因るものだったのだと思います。 重ねてお礼申し上げます。

making commented 6 years ago

2.0.0リリースよりかなり前ですが、2系で試したブランチがあるので、参考になれば。 https://github.com/making/hajiboot-samples/tree/2.0.x/chapter03/3.2.1_hajiboot-rest