Soring Bootの学習で、JpaRepositoryを継承した、CustomerRepositoryインタフェースを、用いることで、簡単にデータベースの操作ができるとのことです。
java
1package com.example.repository; 2 3import java.util.List; 4 5import org.springframework.data.jpa.repository.JpaRepository; 6import org.springframework.data.jpa.repository.Query; 7 8import com.example.domain.Customer; 9 10public interface CustomerRepository extends JpaRepository<Customer, Integer> { 11 @Query("SELECT x FROM Customer x ORDER BY x.firstName, x.lastName") 12 List<Customer> findAllOrderByName(); 13} 14
java
1package com.example.domain; 2 3import javax.persistence.Column; 4import javax.persistence.Entity; 5import javax.persistence.GeneratedValue; 6import javax.persistence.Id; 7import javax.persistence.Table; 8 9import lombok.AllArgsConstructor; 10import lombok.Data; 11import lombok.NoArgsConstructor; 12 13@Entity 14@Table(name = "customers") 15@Data 16@NoArgsConstructor 17@AllArgsConstructor 18public class Customer { 19 @Id 20 @GeneratedValue 21 private Integer id; 22 @Column(nullable = false) 23 private String firstName; 24 @Column(nullable = false) 25 private String lastName; 26} 27
java
1package com.example.Service; 2 3import java.util.List; 4 5import org.springframework.beans.factory.annotation.Autowired; 6import org.springframework.stereotype.Service; 7import org.springframework.transaction.annotation.Transactional; 8 9import com.example.domain.Customer; 10import com.example.repository.CustomerRepository; 11 12@Service 13@Transactional 14public class CustomerService { 15 @Autowired 16 CustomerRepository customerRepository; 17 18 public List<Customer> findAll() { 19 return customerRepository.findAllOrderByName(); 20 } 21 22 public Customer findOne(Integer id) { 23 return customerRepository.findOne(id); 24 } 25 26 public Customer create(Customer customer) { 27 return customerRepository.save(customer); 28 } 29 30 public Customer update(Customer customer) { 31 return customerRepository.save(customer); 32 } 33 34 public void delete(Integer id) { 35 customerRepository.delete(id); 36 } 37}
CustomerServiceクラスのコード書いたところ、findOneメソッド、deleteメソッドにエラーが出ました。
エラー文はそれぞれ
QueryByExampleExecutor<Customer> のメソッド findOne(Example<S>) は引数 (Integer) に適用できません
型 CrudRepository<Customer,Integer> のメソッド delete(Customer) は引数 (Integer) に適用できません
とのことです。
Spring1のコードだったようで、現在使っているSpring2では適用できないようです。
Spring2では上記のコードをどのように書き換えればよいでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。