使用Hibernate,确定表是空还是非空的最有效方法是什么?换句话说,表是0还是0行?
我可以执行HQL查询select count(*) from tablename
,然后检查结果是0还是非0,但这不是最佳的,因为我要求数据库提供比我真正需要的更多细节。
答案 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
我认为这取决于数据库哪种方法最快。