1. ต้องเปลี่ยนเป็นใช้ .getCurrentSession() แทน openSession() ครับ ตอนเราเรียก Session มาใช้งาน
2. แก้ hibernate.cfg.xml เพื่อบอกมันว่าจะใช้ Transaction ซึ่งแต่ละ Server จะเรียกคนละชื่อกันครับ ต้องดูเอา (ผมเคยลอง Test MySQL กับ Websphere 6.0 แล้ว ใช้งานไม่ได้ครับ)
<property name="hibernate.transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</property>
<property name="hibernate.transaction.manager_lookup_class">org.hibernate.transaction.WebSphereExtendedJTATransactionLookup</property>
<property name="hibernate.transaction.manager_lookup_class">org.hibernate.transaction.WebSphereExtendedJTATransactionLookup</property>
อันนี้เป็นของ Websphere Server 6.x นะครับ ถึงจะใช้งานได้
3. แล้วเราก็จะใช้งานได้แล้ว
หมายเหตุ
1. วิธีแบบนี้มีข้อเสียคือ ต้องทำผ่าน EJB เสมอไม่ว่าจะเป็น การ Select ค่าก็ตาม
2. ต้องพยายามทำบน EJB ตัวเดียวกัน เพราะ ถ้าทำคนละตัวอาจจะมีการเรียก Insert, Update ผิดพลาดได้
0 comments:
แสดงความคิดเห็น