0

こんにちは私は冬眠するのが初めてです。どの本とどの仕様を読むべきかについて、たくさんのスレッドと議論を読みました。しかし、問題は、いくつかのスレッドが非常に古く、どこから始めればよいのかわからないことです。私は開発者ガイドのHibernate仕様から始めましたが、これは複雑すぎると思います。だから私はいくつかの小さなチュートリアルを読みました。実際、私はHibernateが使用されていると言われたプロジェクトに割り当てられています。しかし、Hibernateについての知識がほとんどないため、私は完全に失われています。コードでは、MavenpomHibernateが使用されていることがわかります。以下を含む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の構成は、hibernate.cfg.xmlを介して行う必要があると思いました。しかし、私はそれをどこでも見つけることができません。また、クエリを実行している間のコードには、休止状態への参照はありませんでした。すべてのクエリは、importjavax.persistence.Queryを使用して実行されました。ですから、クエリの実行にはJPQLが使用されていると思います。

だから私の質問は:これは本当に休止状態ですか、それとも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 オブジェクト リレーショナル マッピング ライブラリに含まれていた以前の非標準クエリ言語である Hibernate Query Language (HQL) に基づいています。

Hibernate と HQL は、JPA 仕様の前に作成されました。Hibernate 3 以降、JPQL は HQL のサブセットです。

于 2012-10-05T13:10:59.133 に答える
2

だから私の質問は:これは本当に休止状態ですか、それともJPAですか?

これは、実装としてHibernateを使用するJPAです。

JPAは標準であり、HibernateはJPA標準の実装の1つです。

Hibernateのドキュメントとチュートリアルに従ってから、HibernateEntityManagerを使用してプロジェクトをJPAに準拠させてください。

于 2012-10-05T13:21:06.297 に答える
1

Hibernate は JPA の実装です。しかし、Hiberante には他にもあります。Hibernate でオブジェクトをデータベースに永続化する方法は他にもあります。前述のとおり、JPA をmyBatisなどの他のフレームワークで使用できます。

Hibernate では、JPA を使用することが 1 つのオプションです。JPA オプションを使用する場合は、 および を使用する必要がありEntityManagerますEntityManagerFactory。を使用してファクトリを構築する必要がありますpersistance.xml

一方、Criteria APIまたは などの他のオプションを使用できますHQL。Hibernate 固有のオプションを使用する場合は、 と を使用する必要がありSessionますSessionFactoryhibernate.cfg.xmlまた、SessionFactory を作成するときに使用する必要があります。

于 2012-10-12T14:22:43.427 に答える