Friday, March 17, 2006

Hibernate(3.2) Transformer

ได้ข่าวมาจาก blog.hibernate.org
Hibernate 3.2 มี Helper ดีๆที่ช่วย convert object[]
เป็น pojo หรือ java.util.Map แล้ว

เดิมเวลาที่เรา select partial column ใน hibernate
Object ที่ return กลับมาก็คือ Object[]
List list = s.createQuery(
"select e.student.name as studentName, " +
" e.course.desription as courseDescription " +
"from Enrollment as e")
.list();
Object[] row1 = (Object[]) list.get(0) // return => object[]


แต่ถ้ามี Transformer ช่วยเราสามารถเขียนแบบนี้ได้เลย
List list = s.createQuery(
"select e.student.name as studentName," +
" e.course.description as courseDescription" +
"from Enrolment as e")
.setResultTransformer( Transformers.aliasToBean(StudentDTO.class))
.list();

StudentDTO dto = (StudentDTO) list.get(0);


นอกจากใช้ได้กับ createQuery แล้ว ยังใช้ได้กับ createCriteria
และ createSQLQuery อีกด้วย

สุดท้าย ก็คือสามารถแปลงเป็น Map object แทนที่จะเป็น bean
.setResultTransformer( Transformers.ALIAS_TO_MAP )

Related link from Roti

No comments: