0

私はspring-data-restを使用して、春のサーブレットを介してデータベースコンテンツを公開しています。春@RestControllerで@QuerydslPredicateを検証する方法は?

localhost:8080/persons?firstname=john&lastname=doe

質問::のように、HTTP GET経由でフィルタを送信することがあるために@QuerydslPredicateを使用することがPredicate検証ルールを伝えることが可能ですか?たとえば、特定のフィールドがnullではない場合があります(例:姓)?

@RestController 
public class PersonServlet { 
    @GetMapping("/persons") 
    public Iterable<Person> getPersons(
      @QuerydslPredicate(root = Person.class) com.querydsl.core.types.Predicate predicate, 
      Pageable pageable) { 
     return dao.findAll(predicate, pageable); 
    } 

    @Entity  
    public class Person { 
     private String firstname; 
     private String lastname; 
     private String age; 
     //many more fields 
    } 
} 

答えて

0

QPerson.lastname != nullのように検証する方法はないようです。

私はをパラメータとして追加し、@NotNullのような検証制約を追加しました。

@RestController 
public class PersonServlet { 
    @GetMapping("/persons") 
    public Iterable<Person> getPersons(
      @QuerydslPredicate(root = Person.class) com.querydsl.core.types.Predicate predicate, 
      Pageable pageable, 
      @Valid Person p) { 
     return dao.findAll(predicate, pageable); 
    } 

    @Entity  
    public class Person { 
     private String firstname; 

     @NotNull 
     private String lastname; 

     private String age; 
     //many more fields 
    } 
} 
関連する問題