代码之家  ›  专栏  ›  技术社区  ›  Mike

如何将长值强制转换为长筛选器?

  •  0
  • Mike  · 技术社区  · 5 年前

    我正试图将一个长值(id)强制转换到使用私有longfilter postid的类tagcriteria的longfilter中;以创建一个可用于查询的对象。

    public ResponseEntity<List<TagDTO>> getAllTags(TagCriteria criteria, Pageable pageable)
    

    但我不知道如何做它,因为Java文档对我来说并不十分清楚。

    public class TagCriteria implements Serializable {
        private static final long serialVersionUID = 1L;
        private LongFilter id;
        private StringFilter tagName;
        private LongFilter postId;
    
        public TagCriteria() {
        }
    }
    

    可比较类型的筛选器类,其中可以解释小于/大于/等关系。它可以作为成员添加到条件类中,以支持以下查询参数:

      fieldName.equals = 42
      fieldName.specified = true
      fieldName.specified = false
      fieldName.in = 43,42
      fieldName.greaterThan = 41
      fieldName.lessThan = 44
      fieldName.greaterOrEqualThan = 42
      fieldName.lessOrEqualThan = 44
    

    由于类型转换存在问题,应使用泛型类型参数具体化的后代类。

    类型参数:

    <FIELD_TYPE> the type of filter.
    
    See also:
    IntegerFilter
    DoubleFilter
    FloatFilter
    LongFilter
    LocalDateFilter
    InstantFilter
    

    谢谢你的帮助!

    1 回复  |  直到 5 年前
        1
  •  2
  •   Joaquín Crippa    5 年前

    试试这个:

    Long longValue = 1L;
    LongFilter longFilter = new LongFilter();
    longFilter.setEquals(longValue);
    

    如果需要调用REST服务,可以使用queryparam指定值。

    例如,如果您有一个具有“name”属性的资源“person”,并且需要检索所有具有“john”名称的人:

    api/person?name.equals=John