Biz repository interfacelerimizde @Query annotation ile bazı sorgular belirtebiliyorduk Spring Boot bizim için biraz gelişmiş sorgular hazırlayarak sadece method içerisinde yazılan kodda anlayabilmeyi sağlamış ve bu sayede @Query annotationdan kurtuluyoruz.

DerivedRepository.java

public interface DerivedRepository extends JpaRepository<Supplier, Long>{
    List<Supplier> findBySupplierName(String supplierName);
    List<Supplier> findBySupplierNameLike(String supplierNamePattern);
    List<Supplier> findBySupplierNameStartsWith(String supplierNameStartsWith);
    List<Supplier> findBySupplierNameEndsWith(String supplierNameEndsWith);
    List<Supplier> findByTotalDebitGreaterThanEqual(double totalDebitMin);
    List<Supplier> findByTotalDebitBetween(double totalDebitMin,double totalDebitMax);
}


DerivedController.java

@Controller
public class DerivedController {
    
    @Autowired
    private DerivedRepository derivedRepository;
    
    @GetMapping("/supplier/findbynamelike/{name}")
    @ResponseBody
    public String getDerived(@PathVariable(name = "name") String supplierName){
        Iterable<Supplier> suppliers = derivedRepository.findBySupplierNameStartsWith(supplierName);
        Iterator<Supplier> iterator = suppliers.iterator();
        while(iterator.hasNext()){
            Supplier supplier = iterator.next();
            System.out.println(supplier.getSupplierId()+" "+supplier.getSupplierName());
        }
        return "Okey";
    }
}