Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

जावा स्प्रिंग रेस्ट एपीआई कई वैकल्पिक मापदंडों को संभालना

आप इसे JpaSpecificationExecutor . के साथ आसानी से कर सकते हैं और एक कस्टम Specification :https://spring .io/blog/2011/04/26/advanced-spring-data-jpa-specifications-and-querydsl/

मैं हैश मैप को एक डीटीओ के साथ बदल दूंगा जिसमें सभी वैकल्पिक प्राप्त पैरा होंगे, फिर उस डीटीओ के आधार पर विनिर्देशों का निर्माण करें, जाहिर है कि आप हैश मैप भी रख सकते हैं और इसके आधार पर विनिर्देश बना सकते हैं।

मूल रूप से:

public class VehicleFilter implements Specification<Vehicle>
{
    private String art;
    private String userId;
    private String vehicle;
    private String identifier;

    @Override
    public Predicate toPredicate(Root<Vehicle> root, CriteriaQuery<?> query, CriteriaBuilder cb)
    {
        ArrayList<Predicate> predicates = new ArrayList<>();

        if (StringUtils.isNotBlank(art))
        {
            predicates.add(cb.equal(root.get("art"), art));
        }
        if (StringUtils.isNotBlank(userId))
        {
            predicates.add(cb.equal(root.get("userId"), userId));
        }
        if (StringUtils.isNotBlank(vehicle))
        {
            predicates.add(cb.equal(root.get("vehicle"), vehicle));
        }
        if (StringUtils.isNotBlank(identifier))
        {
            predicates.add(cb.equal(root.get("identifier"), fab));
        }

        return predicates.size() <= 0 ? null : cb.and(predicates.toArray(new Predicate[predicates.size()]));
    }

// getter & setter
}

और नियंत्रक:

@RequestMapping(value = "/{ticket}/count", method = RequestMethod.GET)
public long getItemsCount(
    @PathVariable String ticket,
    VehicleFilter filter,
    HttpServletRequest request
) throws Exception
{
    return vehicleService.getCount(filter);
}

सेवा:

@Override
public long getCount(VehicleFilter filter)
{
    return vehicleRepository.count(filter);
}

भंडार:

@Repository
public interface VehicleRepository extends JpaRepository<Vehicle, Integer>, JpaSpecificationExecutor<Vehicle>
{
}

कंपनी कोड से अनुकूलित एक त्वरित उदाहरण, आपको समझ में आ गया!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL में कुल कार्य - सूची (जैसे Oracle में LISTAGG)

  2. डोकर mysql कंटेनर से कनेक्ट नहीं हो सकता

  3. डेटाबेस अनुरोध करने के लिए थ्रेड्स का उपयोग करना

  4. काम नहीं कर रहा में चुनें

  5. त्रुटि 1452 (23000):एक चाइल्ड पंक्ति को जोड़ या अद्यतन नहीं कर सकता:एक विदेशी कुंजी बाधा विफल हो जाती है