今天在执行session.createSQLQuery(SQL)后(多表连接查询,选取部分字段),把结果集直接强转到自定义的实体类上,debug的时候发现全是object对象,但是里面有值,应该是没有映射上的问题,query映射不上自定义的实体类。
解决方法:
在后面添加一个参数
setResultTransformer(new AliasToBeanResultTransformer(OrdersModel.class))
指定了返回结果的类型为orderModel
完整语句为:
Query query=session.createSQLQuery(SQL).setFirstResult(begin).setMaxResults(end)
.setResultTransformer(new AliasToBeanResultTransformer(OrdersModel.class));
还有一种方法:
在createSQLQuery(SQL)后面添加addEntity(OrderModel.class),指定返回的实体类型