动态实例化查询结果
摘自《精通Hibernate》一书
package mypack;import java.io.Serializable;public class CustomerRow implements Serializable { private Long id; private String name; private String orderNumber; public CustomerRow(Long id,String name, String orderNumber) { this.id=id; this.name = name; this.orderNumber = orderNumber; } public Long getId() { return this.id; } public void setId(Long id) { this.id = id; } public String getName() { return this.name; } public void setName(String name) { this.name = name; } public String getOrderNumber() { return this.orderNumber; } public void setOrderNumber(String orderNumber) { this.orderNumber = orderNumber; }}Iterator it = serssion.createQuery("select new mypack.CustomerRow(c.id, c.name, o.orderNumber) from Customer c join c.orders o where o where o.orderNumber like 'T%'").list().iterator();while(it.hasNext()){ CustomerRow row = (CustomerRow)it.next(); Long id = row.getId(); String name = row.getName(); ....}
CustomerRow类不需要是持久化类,因此不必创建它的对象-关系映射文件.