ถ้าเราใช้คำสั่ง
load
กับ base classPerson person = session.load(Person.class, id);
Employee emp = (Employee) person; // ClassCastException here
เวลา run จะเกิด ClassCastException
โดย object ที่ return จาก method
load
จะอยู่ในรูป proxy object ทำให้ cast ไม่ได้
ไปค้นหาใน Issue Tracking ของ Hibernate
พบ issue ที่ HHH-80
อธิบายว่า มันเป็นพฤติกรรมที่พึ่งมีใน Hibernate 3
กรณีที่ lazy="true" (default setting), คำสั่ง load จะได้ผลลัพท์เป็น proxy object
การแก้ไข เลือกวิิธีการใดการหนึ่งจากต่อไปนี้
- เลือก config lazy="false"
- ใช้คำสั่ง session.get แทน session.load
No comments:
Post a Comment