Hibernate使用总结

1、我在使用 Hibernate 时,当ID是非法时(数据表中不存在的记录),但是Hibernate 返回给我的对象不是Null,是一个CGlib 代理对象,我现在如何判断是否取得了真正的对象.

try{

       Hibernate.initialize(po);

}catch(ObjectNotFoundException ex){

       // do anything

}

Hiberante.initialize  先强制它加载,如果加载出问题,那就说明get用的ID不对,获取的不是实体对象,而是代理对象

(另外一种思路:用po.getClass().getName() 看看是不是代理对象)

2、HQL或SQL查询参数为数组时 

String querySentence = "FROM User user WHERE user.id in (:ids)"; 

Query query = getSession().createQuery(querySentence); 

query.setParameterList("ids", ids); 

return query.list(); 

其中,传入的ids可以是任何类型的数组;

相关推荐