13
यह कोई फर्क करता है, तो मैं क्या कर सकते हैं:CrudRepository और हाइबरनेट: (सूची <S>) को बचाने बनाम लेनदेन में (इकाई) को बचाने
@Transactional
public void processData() {
List<MyEntity> entities = ....;
MyEntityRepository.save(entities);
}
बनाम
@Transactional
public void processData() {
List<MyEntity> entities = ....;
for (MyEntity entity : entities) {
MyEntityRepository.save(entity);
}
}
क्या संदर्भ में अंतर नहीं है अंतर्निहित प्रश्नों और प्रदर्शन का?
यदि मेरी सूची में एक ही प्राथमिक कुंजी के साथ कई इकाइयां हैं और फिर मैं 'सेव (सूची
इकाइयां)' कहता हूं, तो यह बाधा अपवाद देता है। हालांकि, अगर मैं पुन: प्रयास करता हूं (यानी दूसरी व्यावसायिक विधि), तो यह शिकायत नहीं करता है। ऐसा क्यों है? – BPmदिलचस्प। मेरा अनुमान है कि किसी भी तरह '@ लेनदेन '' processData() 'के लिए लागू नहीं होता है, इसलिए दूसरे संस्करण में प्रत्येक पुनरावृत्ति अपने स्वयं के लेनदेन संबंधी संदर्भ में चलता है, इस प्रकार सफल होता है। –