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.
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);
}@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";
}
}