Spring 3.1を使用していて、DAOとサービスレイヤー(トランザクション)を作成しています。
ただし、怠惰なinit例外を回避するための特別なケースでは、SpringMVCリクエストハンドラーメソッドを@transactionalにする必要があります。しかし、そのメソッドにトランザクションをアタッチできません。メソッド名はModelAndViewhome(HttpServletRequestリクエスト、HttpServletResponseレスポンス)です。 http://forum.springsource.org/showthread.php?46814-Transaction-in-MVC-Controller このリンクから、トランザクション(デフォルト)をmvcメソッドにアタッチすることはできないようです。そのリンクで提案されている解決策は、Spring 2.5用のようです(handleRequestをオーバーライドします)。どんな助けでも本当に感謝されるでしょう。ありがとう
@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");
}