जब व्यापार परत एक नई इकाई है, जो तार्किक रूप से एक मौजूदा इकाई है कि अद्यतन किया जाना चाहिए का एक उदाहरण का प्रतिनिधित्व करता है बनाता है (वे एक ही व्यापार कुंजी का हिस्सा कहते हैं), बुरी आदत विलय करने की यह विधि है?हाइबरनेट/जेपीए सबसे अच्छा अभ्यास में मौजूदा इकाई के साथ एक अलग या नई इकाई विलय सवाल
public User add(User user){
User existingUser = getUserDao().findByBusinessKey(user.getBusinessKey(), false);
user.setId(existingUser.getId());
user = getUserDao().merge(user);
return user;
}
मैं पूछता हूँ क्योंकि अलग इकाई पर स्पष्ट रूप से आईडी की स्थापना मेरे लिए बहुत अजीब लगता है, लेकिन फिर भी बराबरी और hashCode उपयोगकर्ता संस्था की विधि उचित रूप से लागू किया जाता है, आईडी यहां अपनी सेटिंग सुनिश्चित करने के लिए एक ही रास्ता है विलय होता है।
वहाँ एक बेहतर अभ्यास है?
इस पद्धति है कि मुझे बाद में काट होगा वहाँ विशिष्ट कमियां हैं?
एक नज़र डालने के लिए धन्यवाद!
एक बात यह है कि मेरे कोड स्निपेट ने प्रॉपर्टी का प्रदर्शन नहीं किया था, जो यूज़रडाओ() को मूल उपयोगकर्ता संदर्भ में मर्ज (उपयोगकर्ता) का परिणाम दे रहा था ... इसे दिखाने के लिए स्निपेट को अपडेट करना। –
क्यों एक आईडी (स्वत: उत्पन्न) और एक व्यापार कुंजी पहली जगह है? आईडी के रूप में Busines कुंजी का उपयोग क्यों नहीं करें? यह मानता है कि यह कभी भी पाठ्यक्रम में बदलाव नहीं करता .. – bert
यह हमेशा मैंने जो पढ़ा है उससे हाइबरनेट टीम की सिफारिश रही है - और ऐसा लगता है कि मैंने जो कुछ भी देखा है, उसे छोड़कर: यह http: // community.jboss।संगठन/विकी/EqualsandHashCode –