Oracle
 sql >> база данни >  >> RDS >> Oracle

Spring Data JPA - Подайте името на колоната и стойността като параметри

Разгледайте спецификации на sping данни . Можете да намерите своето решение там!
Четейки документите, можете да видите, че ако Calendar е вашият домейн (бих се опитал да намеря друго име за моя домейн, има Календар клас в Java SE вече), тогава можете да използвате нещо като горното,

@Repository
public interface CalendarRepository extends JpaRepository<Calendar, Integer>, JpaSpecificationExecutor<Calendar> {
}


public class CalendarSpecification implements Specification<Calendar> {

    private String randomColumnName; // A varchar column.
    private String valueToSearchFor;

    public CalendarSpecification(String randomColumnName, String valueToSearchFor) {
        this.randomColumnName = randomColumnName;
        this.valueToSearchFor = valueToSearchFor;
    }

    @Override
    public Predicate toPredicate(Root<Calendar> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
        return builder.and(builder.equal(root.<String>get(this.randomColumnName), this.valueToSearchFor));
    }
}


@Service
public class CalendarService {

    @Autowired
    private CalendarRepository calendarRepository;

    public List<Calendar> findCustom(String randomColumnName, String valueToSearchFor) {
        CalendarSpecification cs = new CalendarSpecification(randomColumnName, valueToSearchFor);
        return calendarRepository.find(cs);
        // Or using lambda expression - without the need of CalendarSpecification class.
//      return calendarRepository.find((Root<ProductCategory> root, CriteriaQuery<?> query, CriteriaBuilder builder) -> {
//          return builder.and(builder.equal(root.<String>get(randomColumnName), valueToSearchFor));
//      });
    }
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Динамично вземане на проби Killing Me in 12c

  2. Разработване за Windows Server 2003 64 бита на Windows XP 32 бита

  3. Топ-N заявки и пагинация в Oracle

  4. Има ли значение редът на таблиците, посочен в клаузата ON на JOIN?

  5. NLS_CHARSET_DECL_LEN() Функция в Oracle