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可以是任何类型的数组;