sql >> Database >  >> RDS >> Oracle

Spring Data JPA - Geef kolomnaam en waarde door als parameters

Bekijk specificaties van spinggegevens . U kunt uw oplossing daar vinden!
Als u de documenten leest, kunt u zien dat als Calendar is jouw domein (ik zou proberen een andere naam voor mijn domein te vinden, er is een Agenda class in Java SE al), dan zou je zoiets als het bovenstaande kunnen gebruiken,

@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. backend db setup voor een app met geografisch diverse gebruikers

  2. Is het mogelijk om meerdere waarden uit een subquery te halen?

  3. De laatst ingevoegde id in een trigger ophalen?

  4. twee procedures uitvoeren met één gebeurtenis