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

Kirim email ke