sql >> Databáze >  >> RDS >> Oracle

Spring Data JPA - Předá název sloupce a hodnotu jako parametry

Podívejte se na specifikace dat sping . Zde můžete najít své řešení!
Při čtení dokumentů zjistíte, že pokud Calendar je vaše doména (zkusil bych pro svou doménu najít jiný název, existuje Kalendář třídy již v Java SE), pak byste mohli použít něco jako výše,

@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. Zaregistrujte nový název serveru v Sql Management Studio

  2. Obsluha BatchUpdateException pomocí withBatch

  3. PLS-00306:nesprávný počet nebo typy argumentů ve volání

  4. Alternativní a nejlepší způsoby formátování dotazu SQL pro zprávy s upozorněním na telefon