关于sql:Hibernate的优点和缺点

Pros and Cons of Hibernate

在我的Project iam中,我打算使用Hibernate,但其中一个令人困惑的地方是:

我在某处阅读的内容:

Hibernate has its own query language, i.e hibernate query language which is database independent
So if we change the database, then also our application will works as HQL is database independent
HQL contains database independent commands

这是否意味着在Java中使用Hibernate时我们不必编写存储的过程和视图?


简短的答案:您不必编写任何查询和/或存储过程。 (此外,您还可以在应用程序启动期间休眠告诉您为您创建/更新所有必需表的权限。)

长答案:无需任何人工定义查询就可以使用Hibernate。 (使用EntityManager,您可以简单地告诉hibernate从数据库中获取user.class的所有内容。)但是,它也支持HQL和SQL查询。

当您稍后切换到另一个数据库时,SQL查询当然将停止工作。 HQL将适用于每个数据库,因为hibernate能够将HQL查询转换为任何(支持的)数据库语言。

但是请注意:在我看来,如果让休眠执行所有工作,休眠将非常慢。 (在加载具有复杂关系的实体时,Hibernate会触发很多单选择查询)