首页
学习
活动
专区
圈层
工具
发布

使用Spring Data Repository向mongo JSON @Query添加排序

使用Spring Data Repository向MongoDB JSON @Query添加排序,可以通过在查询方法中添加一个参数来实现。以下是一个示例:

首先,在你的Repository接口中,添加一个新的方法,如下所示:

代码语言:java
复制
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.data.mongodb.repository.Query;
import org.springframework.stereotype.Repository;

@Repository
public interface MyEntityRepository extends MongoRepository<MyEntity, String> {

    @Query("{ 'fieldName': ?0 }")
    List<MyEntity> findByFieldName(String fieldName, Sort sort);
}

在这个示例中,我们添加了一个新的方法findByFieldName,它接受一个字符串参数fieldName和一个Sort对象。@Query注解用于指定查询的条件,这里我们查询fieldName字段的值。

接下来,在你的Service类中,调用这个方法并传递一个Sort对象来实现排序:

代码语言:java
复制
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service;

@Service
public class MyEntityService {

    private final MyEntityRepository repository;

    public MyEntityService(MyEntityRepository repository) {
        this.repository = repository;
    }

    public List<MyEntity> findByFieldName(String fieldName, Sort sort) {
        return repository.findByFieldName(fieldName, sort);
    }
}

在这个示例中,我们创建了一个新的Service方法findByFieldName,它接受一个字符串参数fieldName和一个Sort对象。然后,我们调用MyEntityRepositoryfindByFieldName方法并传递这些参数。

最后,在你的Controller类中,调用Service方法并传递一个Sort对象来实现排序:

代码语言:java
复制
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class MyEntityController {

    private final MyEntityService service;

    public MyEntityController(MyEntityService service) {
        this.service = service;
    }

    @GetMapping("/findByFieldName")
    public List<MyEntity> findByFieldName(@RequestParam("fieldName") String fieldName,
                                           @RequestParam(value = "sortBy", defaultValue = "asc") String sortBy) {
        Sort sort = Sort.by(sortBy);
        return service.findByFieldName(fieldName, sort);
    }
}

在这个示例中,我们创建了一个新的Controller方法findByFieldName,它接受一个字符串参数fieldName和一个sortBy参数。然后,我们使用Sort.by()方法创建一个Sort对象,并将其传递给Service方法。

这样,你就可以使用Spring Data Repository向MongoDB JSON @Query添加排序了。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的文章

领券