如何使用Hibernate测试表是否为空

时间:2010-05-28 21:21:30

标签: hibernate

使用Hibernate,确定表是空还是非空的最有效方法是什么?换句话说,表是0还是0行?

我可以执行HQL查询select count(*) from tablename,然后检查结果是0还是非0,但这不是最佳的,因为我要求数据库提供比我真正需要的更多细节。

2 个答案:

答案 0 :(得分:3)

以下SQL是查看表是否包含行的一种非常有效的方法:

SELECT EXISTS (SELECT NULL FROM tablename)

我不确定如何将其转换为HQL - 也许它只是有效?

答案 1 :(得分:2)

许多数据库在返回表格中的记录数量时效率很高,但如果您想要有创意,那么session.createQuery("select 1 from table").setMaxSize(1).list().isEmpty()怎么样?

或者:session.createQuery("select 1 from table").setFetchSize(1).scroll(ScrollMode.FORWARD_ONLY).next() == null

我认为这取决于数据库哪种方法最快。