Używam Spring 3.1 i napisać moją warstwę DAO i warstwę usługi (transakcyjnych).Dokonywanie Spring 3 Metoda kontrolera MVC Transactional
Jednak w wyjątkowym przypadku, aby uniknąć leniwego wyjątku init, muszę utworzyć metodę obsługi żądań wiosennych mvc @transactional. Ale nie dołącza transakcji do tej metody. Nazwa metody to ModelAndView home (żądanie HttpServletRequest, odpowiedź HttpServletResponse). http://forum.springsource.org/showthread.php?46814-Transaction-in-MVC-Controller Z tego linku wydaje się, że nie można dołączyć transakcji (domyślnie) do metod mvc. Rozwiązanie sugerowane w tym linku wydaje się być dla Spring 2.5 (przesłanianie handleRequest). Każda pomoc zostanie doceniona. Dzięki
@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");
}
Co starasz się wycofać tutaj? W funkcji kontrolera, w której zdefiniowano adnotację @Transaction, nie ma takiej operacji na bazie danych, którą można wycofać. Jestem zmieszany. –
wszystkie wywołania serwisowe, takie jak categoryService.readAll(), są operacjami bazy danych – Subin
Tak, ale nie można wycofać odczytanych danych. Co dokładnie próbujesz wycofać? –