2016-08-11 9 views
5

को देखते हुए यह 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> { 
} 
+1

क्या आपने इसे हल करने का प्रबंधन किया था? – thorinkor

उत्तर

5

एक तरीका यह है अपने नेस्ट (रों) वस्तु के लिए एक प्रोजेक्शन बनाते हैं और फिर एक और अधिक वैश्विक एक में इस प्रक्षेपण का प्रयोग है। तो आपकी समस्या का पालन करने के बाद, आप राष्ट्रीयता के लिए एक प्रक्षेपण बना सकते हैं, फिर विभाग के लिए एक और जिसके पास नेशनलिटी के प्रक्षेपण को पकड़ने के लिए गेटटर है, और अंत में विभाग की इकाई प्राप्त करने के लिए एक और प्रक्षेपण है।

@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(); 
} 

उम्मीद है कि यह मदद करता है!

+0

क्या आप दिखा सकते हैं कि आप वैश्विक प्रक्षेपण को कैसे कार्यान्वित करेंगे जो उपर्युक्त अनुमानों को वापस कर देगा? –

+0

@ डेल्टा चेर्ली वास्तव में यह मेरे द्वारा दिखाए गए कोड में अभी है। उदाहरण के लिए, कृपया जांचें कि 'कर्मचारी प्रोजेक्शन' ने 'राष्ट्रीयता प्रोजेक्शन' को निहित किया है, इसलिए 'कर्मचारी प्रोजेक्शन' 'कर्मचारी प्रोजेक्शन 'से अधिक वैश्विक है। 'विभाग प्रोजेक्शन 'इंटरफेस के लिए वही कहानी होती है। –

संबंधित मुद्दे