मैं स्प्रिंग 3.1 का उपयोग कर रहा हूं और मेरी डीएओ और सेवा परत (लेनदेन) लिखा है।स्प्रिंग 3 एमवीसी नियंत्रक विधि बनाना लेनदेन
हालांकि आलसी इनिट अपवाद से बचने के लिए एक विशेष मामले में मुझे एक वसंत एमवीसी अनुरोध हैंडलर विधि @transactional बनाना है। लेकिन यह उस विधि को लेनदेन संलग्न करने में विफल रहा है। विधि का नाम मॉडल और दृश्य घर है (HttpServletRequest अनुरोध, HttpServletResponse प्रतिक्रिया)। http://forum.springsource.org/showthread.php?46814-Transaction-in-MVC-Controller इस लिंक से ऐसा लगता है कि एमवीसी विधियों के लिए लेनदेन (डिफ़ॉल्ट रूप से) संलग्न करना संभव नहीं है। लगता है कि उस लिंक में सुझाया गया समाधान स्प्रिंग 2.5 (ओवरराइडिंग हैंडलरक्वेट) के लिए प्रतीत होता है। किसी भी मदद की वास्तव में सराहना की जाएगी। धन्यवाद
@Controller
public class AuthenticationController {
@Autowired
CategoryService categoryService;
@Autowired
BrandService brandService;
@Autowired
ItemService itemService;
@RequestMapping(value="/login.html",method=RequestMethod.GET)
ModelAndView login(){
return new ModelAndView("login.jsp");
}
@RequestMapping(value="/home.html",method=RequestMethod.GET)
@Transactional
ModelAndView home(HttpServletRequest request, HttpServletResponse response){
List<Category> categories = categoryService.readAll();
request.setAttribute("categories", categories);
List<Brand> brands = brandService.readAll();
request.setAttribute("brands", brands);
List<Item> items = itemService.readAll();
request.setAttribute("items", items);
Set<Image> images = items.get(0).getImages();
for(Image i : images) {
System.out.println(i.getUrl());
}
return new ModelAndView("home.jsp");
}
के बारे में एक अच्छा लेख आप यहाँ रोलबैक की कोशिश कर रहे है? नियंत्रक फ़ंक्शन पर जहां आपने @ ट्रांज़ेक्शन एनोटेशन को परिभाषित किया है, वहां ऐसा कोई डेटाबेस ऑपरेशन नहीं है जिसे वापस लुढ़काया जा सकता है। मैं उलझन में हूं। –
श्रेणी सेवा जैसी सभी सेवा कॉल .readAll() डेटाबेस ऑपरेशंस – Subin
हां हैं लेकिन आप पढ़े गए डेटा को वापस नहीं ले सकते हैं। आप वास्तव में वापस रोल करने की कोशिश कर रहे हैं? –