Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Spring Data JPA - Przekaż nazwę kolumny i wartość jako parametry

Zapoznaj się z Specyfikacjami danych sparingowych . Możesz tam znaleźć swoje rozwiązanie!
Czytając dokumenty, możesz zobaczyć, że jeśli Calendar to Twoja domena (chciałbym znaleźć inną nazwę dla mojej domeny, istnieje Kalendarz klasy w Java SE), wtedy możesz użyć czegoś takiego jak powyżej,

@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. Jak DOŁĄCZYĆ do stołów, korzystając z różnych dat bez konieczności przeprowadzania procedur

  2. Wprowadź dużą zawartość do bazy danych Oracle

  3. Pobieranie XML z pięciu różnych tabel Oracle

  4. Znaki specjalne Oracle

  5. Funkcja Oracle Lag z parametrem dynamicznym