org.hibernate.type.Type的问题,底层持久操作代码如下:
public List find(String queryString, Object value, Type type) {
Session session = sessionManage.currentSession();
try {
Query query = session.createQuery(queryString);
query.setParameter(0, value, type);
query.setCacheable(cacheable);
return query.list();
} catch (HibernateException e) {
BaseService.getInstance().getContext().log(
"[PersistMap][find] HibernateException ",
e);
return null;
} finally {
sessionManage.closeSession();
}
}
然后我在外面调用时代码如下:
List list=(ArrayList)map.getPersistQuery().find("“,”“,”“);
底层代码的意思很明了,输入查询语句,设置条件参数值,其实有这些就有了,不过它还有
个Type,试了几次都不行,直接输入类型参数,如String,Long,都不行。
最后想是不是hinerbate用Type来封装外面的各种数据类型,然后统一用Type或其子类去处理
hinernate根据不同数据库生产出来的数据类型,
想到这里就差不多明白了,直接调用org.hibernate.Hibernate中的数据类型如Hibernate.LONG
这样就解决了。。。
public List find(String queryString, Object value, Type type) {
Session session = sessionManage.currentSession();
try {
Query query = session.createQuery(queryString);
query.setParameter(0, value, type);
query.setCacheable(cacheable);
return query.list();
} catch (HibernateException e) {
BaseService.getInstance().getContext().log(
"[PersistMap][find] HibernateException ",
e);
return null;
} finally {
sessionManage.closeSession();
}
}
然后我在外面调用时代码如下:
List list=(ArrayList)map.getPersistQuery().find("“,”“,”“);
底层代码的意思很明了,输入查询语句,设置条件参数值,其实有这些就有了,不过它还有
个Type,试了几次都不行,直接输入类型参数,如String,Long,都不行。
最后想是不是hinerbate用Type来封装外面的各种数据类型,然后统一用Type或其子类去处理
hinernate根据不同数据库生产出来的数据类型,
想到这里就差不多明白了,直接调用org.hibernate.Hibernate中的数据类型如Hibernate.LONG
这样就解决了。。。