2015-12-18 8 views
7

मैं CrudRepository में सहेजने की विधि में कुछ कोड जोड़ना चाहता हूं लेकिन मूल कार्यक्षमता को बनाए रखना चाहता हूं। उसके बाद सहेजने के बाद विधि को पहले से करना चाहिए, भंडार में सहेजें लेकिन अतिरिक्त क्रिया को अतिरिक्त रूप से निष्पादित करें। क्या यह संभव है? यदि हां, तो मैं इसे ठीक से कैसे कर सकता हूं?वसंत: क्रूड रिपोजिटरी में सहेजें विधि ओवरराइड करें

कोई सुझाव

संपादित करें के लिए अग्रिम रूप से धन्यवाद

तो, मैं इस तरह विधि बनाने के लिए करना चाहते हैं:

@Override 
public default <S extends MyClass> S save(S myClassItem) { 
    //here my functionality 
    super.save(myClassItem); //from CrudRepository 
    return myClassItem; 
} 
+0

आपके पास अपनी खुद की क्रूड रिपोजिटरी सही है? या यह कुछ जार से है? –

+0

क्रूडरपे को बढ़ाएं, अपनी बचत विधि को ओवरराइड करें और फिर पैरेंट रेपो पर सुपर (तर्क) को कॉल करें .... संक्षेप में – Mechkov

+3

क्या आप सुनिश्चित हैं कि कोड को सहेजने की विधि में सह होना चाहिए, न कि आप जिस सेवा विधि का उपयोग कर रहे हैं? आप क्या जोड़ना चाहते हैं? –

उत्तर

0

मैं इसे इस तरह में उपयोगकर्ता सुपर संभव है नहीं लगता है एक विधि (डिफ़ॉल्ट और ओवरराइड)। तो आपको विधि का नाम बदलना होगा - जो शायद आप जो खोज रहे हैं वह नहीं हो सकता:

public interface TestRepository extends CrudRepository<MyClass, String> { 

    default MyClass mySave(MyClass myClassItem) { 
     save(myClassItem); 
     return myClassItem; 
    } 
} 
संबंधित मुद्दे