मैं इस कोड के बराबर कैसे प्राप्त कर सकते हैं:स्प्रिंग डेटा जेपीए के साथ इकाइयों को देखते समय LockModeType.PESSIMISTIC_WRITE को कैसे सक्षम करें?
tx.begin();
Widget w = em.find(Widget.class, 1L, LockModeType.PESSIMISTIC_WRITE);
w.decrementBy(4);
em.flush();
tx.commit();
... लेकिन वसंत और वसंत-डाटा-जेपीए एनोटेशन का उपयोग?
अपने मौजूदा कोड का आधार है:
@Service
@Transactional(readOnly = true)
public class WidgetServiceImpl implements WidgetService
{
/** The spring-data widget repository which extends CrudRepository<Widget, Long>. */
@Autowired
private WidgetRepository repo;
@Transactional(readOnly = false)
public void updateWidgetStock(Long id, int count)
{
Widget w = this.repo.findOne(id);
w.decrementBy(4);
this.repo.save(w);
}
}
लेकिन मैं निर्दिष्ट करने का तरीका है कि updateWidgetStock
विधि में सब कुछ एक निराशावादी ताला सेट के साथ किया जाना चाहिए पता नहीं है।
एक स्प्रिंग डाटा जेपीए एनोटेशन org.springframework.data.jpa.repository.Lock
जो आपको एक LockModeType
सेट करने देता है, लेकिन अगर यह updateWidgetStock
विधि पर डाल करने के लिए मान्य नहीं है मैं नहीं जानता। यह अधिक WidgetRepository
पर टिप्पणी के जैसा लगता है, क्योंकि जावाडोक का कहना है:
org.springframework.data.jpa.repository
@Target (मूल्य = विधि)
@Retention (मूल्य = क्रम)
@Documented
सार्वजनिक @ इंटरफेस लॉक
एनोटेशन क्वेरी निष्पादित करते समय लॉकमोड टाइप टाइप करने के लिए उपयोग किया जाता है। किसी क्वेरी विधि पर क्वेरी का उपयोग करते समय या यदि आप विधि नाम से क्वेरी प्राप्त करते हैं तो इसका मूल्यांकन किया जाएगा।
... इसलिए यह सहायक नहीं लगता है।
मैं सेट के साथ अपना updateWidgetStock()
विधि निष्पादित कैसे कर सकता हूं?
इस सवाल का जवाब दोनों उपयोगी हो सकता है: http://stackoverflow.com/questions/11880924/how-to-add-custom-method -to-spring-data-jpa –