Hibernate模板会话查询
我们使用 Spring HibernateTemplate 类进行休眠操作。我需要使用 in 子句执行查询并设置使用 arrayList 的选项。为此,我需要一个 org.hibernate.Query 对象。
String queryStr = "from CertMetadataCfg where metadataId in (:metadataIds)";
Query query=hibernateTemplate.getSessionFactory().openSession().createQuery(queryStr)
query.setParameterList("metadataIds", metadataSet);
但为了检索查询对象,我们必须打开一个新会话。为什么我们需要打开一个会话。我们应该什么时候结束本次会议。
We are using Spring HibernateTemplate class for hibernate operation. I need to execute a query with in clause and setting the options for in using an arrayList. For that i need a org.hibernate.Query object.
String queryStr = "from CertMetadataCfg where metadataId in (:metadataIds)";
Query query=hibernateTemplate.getSessionFactory().openSession().createQuery(queryStr)
query.setParameterList("metadataIds", metadataSet);
but for retrieving Query object we have to open a new session. Why do we need to open a session. and when should we close this session .
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
HibernateTemplate 负责会话处理的打开和关闭。
请检查文档。
使用 findByNamedParam -
HibernateTemplate does the opening and closing of the session handling.
Please check the documentation.
Use findByNamedParam -
如果您只想进行读取,则无需打开会话。使用 getHibernateTemplate().find(queryString);
If you want to do only a read, you dont need to open the session. Use
getHibernateTemplate().find(queryString);