簡體   English   中英

如何在Spring數據休息中返回深層嵌套投影?

[英]How to return deep nested projections in Spring data rest?

鑒於這3個實體:

@Entity
class Department{
    Set<Employee> employees;
    Set<Employee> getEmployees(){
        return this.employees;
    };    
}

@Entity
class Employee{
    Nationality nationality;
    Nationality getNationality(){
        this.nationality;
    }
}
@Entity
class Nationality{

}

我想為Department創建一個投影,讓所有部門都有員工和國籍。 我所取得的成就是讓所有部門與員工一起使用:

@Projection(name = "fullDepartment", types = { Department.class })
public interface DepartmentsProjection {
    Set<Employee> getEmployees();
}

@RepositoryRestResource(collectionResourceRel = "department", path = "departments")
public interface DepartmentRepository extends JpaRepository<Department, Long> {
}

一種方法是為嵌套對象創建一個Projection,然后在更全局的對象中使用此投影。 因此,根據您的問題,您可以為國籍創建一個投影,然后為部門創建另一個投影以獲取國籍的投影,最后另一個投影以獲得部門的實體。

@Projection(name = "NationalityProjection", types = { Nationality.class })
public interface NationalityProjection{
    // getters of all attributes you want to project
}

@Projection(name = "EmployeeProjection", types = { Employee.class })
public interface EmployeeProjection{
    NationalityProjection getNationality();
}

@Projection(name = "DepartmentProjection", types = { Department.class })
public interface DepartmentProjection{
    Set<EmployeeProjection> getEmployees();
}

希望能幫助到你!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM