首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检查JPA/hibernate数据库是否启用了二级缓存

如何检查JPA/hibernate数据库是否启用了二级缓存
EN

Stack Overflow用户
提问于 2010-01-27 01:04:19
回答 1查看 2.7K关注 0票数 0

我有一个连接到数据库的使用Hibernate/JPA的JSP/Spring应用程序。我有一个外部程序,检查网络服务器是否每5分钟启动一次。

该程序调用特定的URL来检查web服务器是否仍在运行。服务器返回“成功”。显然,如果服务器现在是,则不会返回任何内容。请求超时并发出警报,通知sysadmin有问题...

我想在这个过程中添加另一个层:如果数据库服务器关闭,我希望服务器返回"ERROR“。有没有一种方法可以使用Hibernate来检查数据库服务器是否正常运行?

我想要做的就是拿一个物体,试着保存它。这将工作,但我认为这可能是太多的我想要的。我也可以从数据库中读取(加载)一个对象。但由于我们对所有对象都使用二级缓存,因此将从缓存加载对象,而不是从数据库加载。

我要找的东西大概是:

代码语言:javascript
复制
HibernateUtils.checkDatabase()

Hibernate中有这样的功能吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-01-27 03:28:06

你可以使用原生查询,例如

代码语言:javascript
复制
Query query = sess.createNativeQuery("select count(*) from mytable").setCacheable(false);
BigDecimal val = (BigDecimal) query.getSingleResult();

这应该会强制hibernate使用池中的连接。如果数据库关闭了,我不知道hibernate返回的错误会是什么,因为它不能从池中获得连接。如果数据库已启动,您将获得查询的结果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2141049

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档