Hibernate的优点和缺点

时间:2014-02-20 11:34:17

标签: sql hibernate

在我的项目中,iam即将使用Hibernate,但是会产生混淆:

我在某处阅读:

  

Hibernate有自己的查询语言,即与数据库无关的hibernate查询语言   因此,如果我们更改数据库,那么我们的应用程序也将起作用,因为HQL与数据库无关   HQL包含与数据库无关的命令

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

1 个答案:

答案 0 :(得分:2)

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

答案很长:可以在没有任何手动定义查询的情况下使用Hibernate。 (使用EntityManager,您可以简单地告诉hibernate从数据库中获取user.class的所有内容。)但它也支持HQL和SQL-Queries。

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

但要注意:在我的意见中如果让hibernate完成所有工作,Hibernate会很慢。 (当加载具有复杂关系的实体时,Hibernate会激发大量单个Select Queries)