sql >> Database teknologi >  >> RDS >> Oracle

Spring Data JPA - Angiv kolonnenavn og værdi som parametre

Tag et kig på Sping data Specifikationer . Du kan finde din løsning der!
Når du læser dokumenterne, kan du se, at hvis Calendar er dit domæne (jeg ville prøve at finde et andet navn til mit domæne, der er en Kalender klasse i Java SE allerede), så kan du bruge noget som ovenstående,

@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. Hvorfor returnerer Laravel / Eloquents friske funktion et objekt, men kalder dets attribut returnerer 0?

  2. Kopier en tabelændringsværdier i 1 kolonne og indsæt den i den samme tabel

  3. 'For mange forbindelser' oprettet i postgres ved oprettelse af et dashboard i Pentaho

  4. Vis indlæsningsbillede, mens PHP kører