Hibernate条件查询API
我假设以下是一个否定(?)Hibernate条件查询API,hibernate,Hibernate,我假设以下是一个否定(?) >公共条件createCritera(类persistentClass){ >…//创建会话对象等。 >session.beginTransaction(); >Criteria crit=session.createCriteria(persistentClass); >session.getTransaction().commit(); >session.close(); > >返回暴击; } 或者,即使用于创建Critera的会话对象已关闭且当前事务
>公共条件createCritera(类persistentClass){
>…//创建会话对象等。
>session.beginTransaction();
>Criteria crit=session.createCriteria(persistentClass);
>session.getTransaction().commit();
>session.close();
>
>返回暴击;
}
或者,即使用于创建Critera的会话对象已关闭且当前事务已提交,也可以使用和操作Critera对象。这确实不是一个好主意 我不确定您想要完成什么,但我认为您应该看看
DetachedCriteria
类
这允许您创建未链接/连接到会话的条件查询。当您想要执行DetachedCriteria时,您必须将其附加到会话,这样您就可以开始了。这确实不是一个好主意 我不确定您想要完成什么,但我认为您应该看看
DetachedCriteria
类
这允许您创建未链接/连接到会话的条件查询。当您想要执行DetachedCriteria时,您必须将其附加到会话,这样您就可以开始了。如果没有活动的
会话可使用,请使用。稍后(例如,在一个DAO中,您有一个活动会话来执行查询),如果没有活动的会话
,您可以使用它来获取一个可执行的条件。稍后(例如,在一个DAO中,您有一个活动会话来执行查询),您可以使用来获取一个可执行的条件如果您试图在创建查询/Critera的会话关闭后操作查询/Critera,您将得到一个HibernateException抛出。例外情况将显示:“会话已关闭”
因此,如果分离技术不适用,我建议(我自己)总是返回结果,例如
crit.list();
query.list();
如果在创建查询/Critera的会话关闭后尝试操作查询/Critera,您将得到一个HibernateException抛出,而不是返回Critera/Query实例。例外情况将显示:“会话已关闭”
因此,如果分离技术不适用,我建议(我自己)总是返回结果,例如
crit.list();
query.list();
而不是返回Critera/Query实例