0

嗨,我是新来的休眠。我阅读了很多关于阅读哪本书和阅读什么规范的主题和讨论。但问题是有些线程太老了,我不明白从哪里开始。我从开发人员指南中的 Hibernate 规范开始,我认为这太复杂了。所以我读了一些小教程。实际上,我被分配到某个项目,我被告知使用了 Hibernate。但是由于对Hibernate知之甚少,我完全迷路了。在代码中,我可以看到在 Maven pom Hibernate 中使用了。我发现 META-INF/Persistence.xml 包含:

 <?xml version="1.0" encoding="UTF-8" ?> 
<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0">
 <persistence-unit name="EmployeeDatabase" transaction-type="JTA">
    <jta-data-source>java:EmpDS</jta-data-source>   
<provider>org.hibernate.ejb.HibernatePersistence</provider> 
<class>entity.Employee</class> 
<properties>
  <property name="hibernate.connection.password" value="Usha" /> 
  <property name="hibernate.archive.autodetection" value="class" /> 
  <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" /> 
  <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/Employee" /> 
  <property name="hibernate.connection.username" value="Usha" /> 
  <property name="hibernate.hbm2ddl.auto" value="update" /> 
  <property name="hibernate.show_sql" value="false" /> 
    </properties>
 </persistence-unit>

我认为休眠配置必须通过 hibernate.cfg.xml 完成。但我无法在任何地方找到它。在进行查询时的代码中没有提到休眠。所有查询都是使用 import javax.persistence.Query 完成的。所以我猜想JPQL是用来做查询的。

所以我的问题是:这真的是 Hibernate 还是 JPA 还是什么?

我什么时候可以说这是使用 Hibernate 进行持久性。

何时使用 JPQL,何时使用 HQL?

请任何人都可以指导我完成这个。请明确我想先学习 Hibernate,然后再深入研究我的任务。但我不知道从哪里开始。哪本书或教程最好。

最好的问候,吉娜

4

3 回答 3

5

这真的是 Hibernate 或 JPA 还是什么?

JPA 是一个框架,而 Hibernate 是一个可以使用 JPA 框架的实现。所以不要把它们混为一谈。

何时使用 JPQL,何时使用 HQL?

同样,JPQL 是一种标准语言,并且不仅与 Hibernate 相关联。但是,如果您只使用 Hibernate,您可能会发现 HQL 有更多选择并且更灵活。

http://en.wikipedia.org/wiki/Java_Persistence_Query_Language 参考这个:

JPQL 基于 Hibernate 查询语言 (HQL),这是一种早期的非标准查询语言,包含在 Hibernate 对象-关系映射库中。

Hibernate 和 HQL 是在 JPA 规范之前创建的。从 Hibernate 3 开始,JPQL 是 HQL 的子集。

于 2012-10-05T13:10:59.133 回答
2

所以我的问题是:这真的是 Hibernate 还是 JPA 还是什么?

这是使用 Hibernate 作为实现的 JPA。

JPA是一个标准,Hibernate是JPA标准的实现之一

尝试遵循 Hibernate 文档和教程,然后使用 Hibernate EntityManager 使您的项目符合 JPA

于 2012-10-05T13:21:06.297 回答
1

Hibernate 是 JPA 的实现。但希伯兰特还有更多。hibernate 中还有其他方法可以将对象持久保存到数据库中。如前所述,您可以将 JPA 与myBatis等其他框架一起使用。

在 Hibernate 中,使用 JPA 是一种选择。使用 JPA 选项时,您必须使用EntityManagerand EntityManagerFactory。您必须使用persistance.xml.

另一方面,您可以使用其他选项,例如Criteria APIHQL。使用 Hibernate 特定选项时,您必须使用Sessionand SessionFactory。您必须hibernate.cfg.xml在创建 SessionFactory 时使用。

于 2012-10-12T14:22:43.427 回答