2010/5/9 joshua sitopul <[email protected]> > > > > Masalahnya sudah terpecahkan.. > > dapat inspirasi dari blog ini : > http://javaprogrammingtips4u.blogspot.com/2010/04/how-to-solve-orghibernatehibernateexcep.html > > intinya : > <tx:annotation-driven/> only looks for @Transactional on beans in the same > application context it is defined in. This means that, if you put > <tx:annotation-driven/> in a WebApplicationContext for a DispatcherServlet, > it only checks for @Transactional beans in your controllers, and not your > services. > > Nah, coba lihat di applicationContext.xml dan springapp-servlet.xml > > di applicationContext.xml > > <context:annotation-config/> > <context:component-scan base-package="*"/> > <tx:annotation-driven/> > > di springapp-servlet.xml > <context:annotation-config/> > <context:component-scan base-package="*"/> > > Sebenarnya aneh juga karena lihat dari penjelasannya, jika annotation-driven > ditaruh di dispatcher servlet, maka akan cek annotation transactional bean di > dalam kontroller , tidak diservice. Tapi kan itu saya taruh di > applicationContext.xml mestinya dia cek di service. tapi mungkin ambigu kali > kalau pakai * > > solusinya bisa tambahkan <tx:annotation-driven/> di spring-servlet.xml atau > jangan pakai * > > saya sih lebih prefer jangan pakai *, jadi di springapp-servlet di base > package ke controller aja, jadi <tx:annotation-driven/> cuma hanya di > applicationContext.xml
Ya saya kan udah bilang di posting di atas, jangan pakai wildcard. Akibatnya, kita jadi gak tau @Servicenya dideteksi sama xml yang mana, soalnya ada 2 xml dan 2-2nya base packagenya *. Pakai wildcard gpp, tapi jangan cuma *, kasi prefix supaya lebih terkontrol xml mana ngeload bean yang mana. Di referensinya Spring juga sudah diingatkan, bahwa tx:annotation-driven hanya memproses yang diload oleh XML tempat dia dideklarasikan. http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/transaction.html#transaction-declarative-annotations -- Endy Muhardin http://endy.artivisi.com Y! : endymuhardin -- life learn contribute --

