Hibernate初学者怀疑

Jee*_*ena 0 java hibernate jpa hql jpql

嗨,我是hibernate的新手.我阅读了很多关于哪本书以及要阅读的规范的线程和讨论.但问题是有些线程太老了,我不明白从哪里开始.我从开发人员指南中的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>
Run Code Online (Sandbox Code Playgroud)

我认为hibernate配置必须通过hibernate.cfg.xml来完成.但我可以在任何地方找到它.在执行查询时代码中没有对hibernate的引用.所有查询都是使用import javax.persistence.Query完成的.所以我猜JPQL用于执行查询.

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

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

何时使用JPQL以及何时使用HQL?

请有人可以指导我完成这件事.要清楚我想首先学习Hibernate,然后深入挖掘我的作业.但我不知道从哪里开始.哪本书或教程最好.

最诚挚的问候,Jeena

she*_*aei 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的一个子集.