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


Oh ya..thanks buat semua rekan-rekan disini untuk bantuannya.

Kirim email ke