Mungkin gw share sedikit rahasia yg ga banyak orang kupas. Salah satu alasan kuat kenapa kita pakai EJB untuk aplikasi seam adalah, PersistenceContext.EXTENDED. Persistence context extended ini akan tetap membuka session selama statefull EJB tersebut belum di remove. Nah dengan keuntungan ini kalau kita punya object yg statenya persistent, di field Seam Object, kita tidak perlu khawatir apakah object yg kita baru kita load, statenya masih persist atau tidak. Dan ini menghindari kasus LazyInitializeException. Cara yg smart dari pada pakai OSIV sampahnya SPRING !!!
PersistenceContext.EXTENDED ini bisa kita dapatkan kalau kita pakai statefull session bean. Karena persistenceContext.Extended dimanage oleh container. Umumnya orang2 menggabungkan persistenceContext.Extended SFSB dengan Conversation scope buat menghasilkan racikan terbaik :D Nah impactnya adalah 1. Ga pusing2 lagi sama LazyInitializeException yg diakalin pake OSIV Pattern seperti aplikasi jadul model Spring. 2. Koding lebih hemat, kerena ga pusing2 lagi sama DTO lah, BackingBean lah bla bla bla Tapiiiiii .... masih bisa dimungkinkan tidak menggunakan Stateufull session bean dan tetap menggunakan POJO untuk menghasilkan cara ini.Yaitu dengan cara menggunkana SMPC (bahasa kerennya untuk teknik ini yaitu "Seam-managed persistence context" (SMPC)) FlushType.MANUAL. Jadi ketimbang langsung inject PersistenceContext.EXTENDED yang diambil dari ejb kontener, kita pakai @In untuk entityManager agar menghasilkan Seam Manage Persitance Context. jangan lupa set FlushType. MANUAL. TAPIIIII .......... jreng jreng Hanya saja ini cuma berlaku kalau JPA yg kamu pakai adalah Hibernate. hehehehehe. So untuk kompatibilitas, gunakan StatefullSession bean persistenceContext.EXTENDED. Tapi kalau kamu RedHat oriented, pakai lah Hibernate dan gunakan SMPC. Cheers ! 2009/4/29 Joshua Partogi <joshua.j...@gmail.com>: > > > 2009/4/29 xsalefter <xsalef...@yahoo.com>: > >> --- In jug-indonesia@yahoogroups.com, Joshua Partogi <joshua.j...@...> >> wrote: >>> >>> IMHO pakai EJB dengan Seam gak terlalu dapat keuntungan sih dibanding >>> pakai POJO karena EJB yang di-support ama Seam cuman Local Bean. >> >> Bagaimana dengan transaction? AFAIK Kalo pake POJO transaction itu >> dimanage sama si seam. Beda dengan kalo pake EJB3. Itu dapat full capability >> dari EJB. Walaupun sama2 yang manage transaction itu ujung2nya si app server >> juga. CMIWW. >> > > Kalau masalah Transaction, POJO transaction yang di-support Seam itu > sudah setara EJB3. Memang yang full capability itu seperti apa ya? :-) > > -- > If you can't believe in God the chances are your God is too small. > > Read my blog: http://joshuajava.wordpress.com/ > Follow us on twitter: http://twitter.com/scrum8 > -- Warm Regards, Arif Rachim