Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.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 SpringJPA:我们如何根据嵌入类中的属性进行排序_Java_Spring_Spring Boot_Spring Data Jpa_Spring Data - Fatal编程技术网

Java SpringJPA:我们如何根据嵌入类中的属性进行排序

Java SpringJPA:我们如何根据嵌入类中的属性进行排序,java,spring,spring-boot,spring-data-jpa,spring-data,Java,Spring,Spring Boot,Spring Data Jpa,Spring Data,我尝试在SO上搜索我的问题,但找不到与我的问题匹配的问题。 让我们举一个简单的例子,其中我有一个实体类和一个复合主键(嵌入)类 实体类: @Entity(name = "employee") public class EmployeeEntity { @EmbeddedId private EmployeeId employeeId ; @Column(name = "fName") private String fName; @Column(name =

我尝试在SO上搜索我的问题,但找不到与我的问题匹配的问题。 让我们举一个简单的例子,其中我有一个实体类和一个复合主键(嵌入)类

实体类:

@Entity(name = "employee")
public class EmployeeEntity {
    @EmbeddedId
    private EmployeeId employeeId ;
    @Column(name = "fName")
    private String fName;
    @Column(name = "lName")
    private String lName;
}
存储库类:

@Repository
public interface EmployeeRepository extends JpaRepository<EmployeeEntity, EmployeeId> {
// The below method works and I can see the result sorted by first names
    List<EmployeeEntity> findByEmployeeId_EmpIdAndEmployeeId_SsnOrderByFNameDesc(int empId, String ssn);

// However let's say I want to order by start_date desc, I am not able to create the right method name here.
}
@存储库
公共接口EmployeeRepository扩展了JpaRepository{
//下面的方法有效,我可以看到按名字排序的结果
列表findByEmployeeId_EmpIdAndEmployeeId_SsnOrderByFNameDesc(int-empId,String-ssn);
//但是,假设我想按开始日期描述订购,我无法在这里创建正确的方法名称。
}
我的问题在上面的评论中:如何利用JPA的功能(如上图所示按名字排序的方法)按嵌入式id类中的属性排序或使用属性排序?

List findByEmployeeId\u EmpIdAndEmployeeId\u SsnOrderByEmployeeIdStartDateDesc(int-empId,String-ssn);
List<EmployeeEntity> findByEmployeeId_EmpIdAndEmployeeId_SsnOrderByEmployeeIdStartDateDesc(int empId, String ssn);
应该可以工作。

列表findByEmployeeId\u EmpIdAndEmployeeId\u SsnOrderByEmployeeIdStartDateDesc(int-empId,String-ssn);

应该有效。

您必须按照在类中定义查询的方式命名查询。 在下面的
EmployeeId
中,是嵌入id的类型,属性的名称是
startDate
,您希望按其进行排序


因此,使用OrderByEmployeeIdStartDateDesc

您必须按照在类中定义查询的方式命名查询。 在下面的
EmployeeId
中,是嵌入id的类型,属性的名称是
startDate
,您希望按其进行排序

因此,请使用OrderByEmployeeIdStartDateDesc

List<EmployeeEntity> findByEmployeeId_EmpIdAndEmployeeId_SsnOrderByEmployeeIdStartDateDesc(int empId, String ssn);