2012-10-15 13 views
5

द्वारा सहेजे नहीं गए हैं मेरे पास जीडब्ल्यूटी के साथ एक स्प्रिंग रू एप्लिकेशन है।नेस्टेड ऑब्जेक्ट्स स्प्रिंग जेपी रिपोजिटरी

@Repository 
public interface MyEntityRepository extends JpaSpecificationExecutor<MyEntity>, JpaRepository<MyEntity, Long> { 
} 

वहाँ एक MyEntity वर्ग एक MyOtherEntity वर्ग के लिए एक एक-से-एक संबंध है है: सर्वर साइड पर मैं की तरह सभी संस्थाओं के लिए सरल JpaRepository इंटरफेस मिला है। जब मैं अपने इकाई-सेवा को कॉल विधि

public void saveMyEntity (MyEntity myEntity) { 
    myEntityRepository.save(myEntity); 
} 

केवल myEntity वस्तु को सहेज लिया जाएगा लागू हैं। MyEntity की सभी उप वस्तुओं को नजरअंदाज कर दिया जाता है। MyOtherEntity ऑब्जेक्ट के साथ myEntity ऑब्जेक्ट को सहेजने का एकमात्र तरीका

myOtherEntityRepository.save(myOtherEntity); 

उपरोक्त कोड से पहले कॉल कर रहा है। तो क्या JpaRepository इंटरफ़ेस के साथ स्वचालित रूप से उप ऑब्जेक्ट्स को सहेजने का एक और शानदार तरीका है?

उत्तर

10

मैं आपके कोडिंग कार्यान्वयन को नहीं देख रहा था। लेकिन, मुझे लगता है, इसे JPA में उपयोग करने की आवश्यकता है। जेपीए संदर्भ CascadeType

नीचे जैसा प्रयास करें।

public class MyEntity { 
    @OneToOne(cascade=CascadeType.PERSIST) <or> @OneToOne(cascade=CascadeType.ALL) <-- for all operation 
    @JoinColumn(name = "YOUR-ID") 
    private MyOtherEntity myOtherEntity ; 
} 

Recursiivce MyEntity रिश्ता

public class MyEntity { 
    @OneToOne(cascade=CascadeType.PERSIST) <or> @OneToOne(cascade=CascadeType.ALL) <-- for all operation 
    @JoinColumn(name = "YOUR-ID") 
    private MyEntity myEntity ; 
} 
+0

कि मेरे लिए काम करता लिए! धन्यवाद –

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