Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring Boot REST:忽略排序方向,但排序通常有效_Java_Spring_Spring Boot_Spring Data Jpa - Fatal编程技术网

Java Spring Boot REST:忽略排序方向,但排序通常有效

Java Spring Boot REST:忽略排序方向,但排序通常有效,java,spring,spring-boot,spring-data-jpa,Java,Spring,Spring Boot,Spring Data Jpa,我正在用Spring Boot编写一个RESTAPI。因此,我通过名字来获取员工。我正在传递Pageable参数进行排序,问题是忽略了方向。因此Spring总是对ascnervedesc进行排序,这是默认行为。我不知道我做错了什么 我需要补充的是,排序通常是有效的,因为如果我不将chrValue作为sort参数传递,我会得到像存储在数据库中一样的项目 请求: http://localhost:8080/dimensionAttributeValues/search/findDimensionAt

我正在用Spring Boot编写一个RESTAPI。因此,我通过名字来获取员工。我正在传递
Pageable
参数进行排序,问题是忽略了方向。因此Spring总是对ascnerve
desc
进行排序,这是默认行为。我不知道我做错了什么

我需要补充的是,排序通常是有效的,因为如果我不将
chrValue
作为
sort
参数传递,我会得到像存储在数据库中一样的项目

请求:

http://localhost:8080/dimensionAttributeValues/search/findDimensionAttributeValueByDimensionAttributeDimensionAttributeID?dimensionAttributeId=1&page=0&size=1&sort=chrValue&chrValue.dir=desc
存储库:

@RepositoryRestResource(collectionResourceRel = "dimensionAttributeValue", path = "dimensionAttributeValues")
@CrossOrigin(exposedHeaders="Access-Control-Allow-Origin")
public interface DimensionAttributeValueRepository extends PagingAndSortingRepository<DimensionAttributeValue, Long> {
    Page<DimensionAttributeValue> findDimensionAttributeValueByDimensionAttributeDimensionAttributeID(@Param(value = "dimensionAttributeId") long dimensionAttributeId, Pageable pageable);
    Page<DimensionAttributeValue> findDimensionAttributeValueByMasterDataMasterDataIDAndDimensionAttributeDimensionAttributeID(@Param(value = "masterDataId") long masterDataId, @Param(value = "dimensionAttributeId") long dimensionAttributeId, Pageable pageable);
    Page<DimensionAttributeValue> findDimensionAttributeValueByDimensionAttributeDimensionDimensionIDOrDimensionAttributeDimensionAttributeIDOrderByChrValue(@Param(value="dimensionID") long dimensionID, @Param(value = "dimensionAttributeID") long dimensionAttributeID, Pageable pageable);
    Page<DimensionAttributeValue> findAllByDimensionAttributeDimensionAttributeIDAndChrValueStartingWith(@Param(value = "dimensionAttributeId") long dimensionID, @Param(value = "chrValue") String chrValue, Pageable pageable);

}
有什么想法吗?谢谢

试试这个URL

http://localhost:8080/dimensionAttributeValues/search/findDimensionAttributeValueByDimensionAttributeDimensionAttributeID?dimensionAttributeId=1&page=0&size=1&sort=chrValue,desc


这将按降序对数据进行排序。

url参数是否区分大小写?因为您的列名是“ChrValue”,大写C,参数是ChrValue。好主意,我试过了,但行为相同。另外,我认为spring总是使用属性名。在您的请求中,您传递size=1是否正确?是的,但对于size=20或size=200,我有相同的行为。@Max尝试一下<代码>http://localhost:8080/dimensionAttributeValues/search/findDimensionAttributeValueByDimensionAttributeDimensionAttributeID?dimensionAttributeId=1&page=0&size=1&sort=chrValue,desc
@Entity
@Table(name = "DimensionAttributeValue")
public class DimensionAttributeValue {

    @Id
    @GeneratedValue
    @Column(name = "DimensionAttributeValue_ID")
    private long dimensionAttributeValueID;

    @ManyToOne
    @JoinColumn(name = "DimensionAttribute_ID")
    private DimensionAttribute dimensionAttribute;

    @ManyToOne
    @JoinColumn(name = "MasterData_ID")
    private MasterData masterData;

    @Column (name = "ChrValue")
    private String chrValue;

    @Column (name = "IntValue")
    private Long intValue;

    @Column (name = "DecValue")
    private Double decValue;

    @Column (name = "DatValue")
    private String datValue;

    @Column (name = "BlnValue")
    private Boolean blnValue;

    @ManyToOne
    @JoinColumn (name = "LnkValue")
    private DimensionAttributeValue lnkValue;

    @ManyToOne
    @JoinColumn (name = "LstValue")
    private DimensionAttributeList lstValue;

    @Column (name = "StartDate")
    private Date startDate;

    // [...]
}