Session!!!

อยากจะบ่นเพราะนั่งแก้ตั้งแต่เมื่อวานไม่ได้ซักที วันนี้นั่งทำมาอีกครึ่งวัน ปรากฏว่า แก้แค่บรรทัดเดียวได้แล้ว -*- ปัญหา คือ เวลาจะทำอะไรเกี่ยวกับ Collection เนี๊ยะ โดยเฉพาะ update กับ insert ใน hibernate มันต้องทำใน session เดียวกัน ห้ามสร้าง session แยก คราวนี้ปกติเวลาเรา เรียกไปที่ DAO ที มันก็สร้าง session ให้ใหม่ที (ให้มันได้งี้สิ) ก็นั่งหาวิธีแก้ ทั้ง close session หลังจาก select หรือเรียกแต่ละ method เสร็จ แต่ก็ไม่ได้อีก เพราะมันก็กลายเป็น error อย่างอื่นไป (บอก session ยังไม่เปิด fetch ข้อมูลไม่ได้ ว๊ากกก มันอะไรฟะ) จนในที่สุดเลยเข้าไปดูใน config file แล้วก็แก้โค้ดตามด้านล่าง


<bean id="openSessionInView"class="org.springframework.orm.hibernate3.support.OpenSessionInViewInterceptor">
<property name="sessionFactory" ref="sessionFactory" />
<property name="singleSession" value="false" />
</bean>

เป็น


<bean id="openSessionInView"class="org.springframework.orm.hibernate3.support.OpenSessionInViewInterceptor">
<property name="sessionFactory" ref="sessionFactory" />
<property name="singleSession" value="true" />
</bean>

ให้ตายเสะ บรรทัดเดียวแท้ๆที่จริงก่อนหน้านั้นมันมีปัญหากับ singleSession ที่มันไม่ยอม commit ข้อมูลลงฐานข้อมูลให้อัตโนมัติ เลยไปเปลี่ยนมันเป็น false ปรากฏว่ามันสามารถสั่งให้มัน flush ได้แต่พึ่งรู้ง่ะ (ไม่มีหนังสือ hibernate สงสัยต้องซื้อเพิ่มอีกเล่มซะแล้ว) ปัญหานั้นก็หมดไปและเห้อกว่าจะทำได้เสร็จ 2 usecase เล่นเอาเหนื่อยเหมือนกันแฮะเหลือ View history, roll version back, view 2 version compare, …. อ๊ากก เยอะแฮะ

About llun

Just a programmer

,