問題タブ [hibernate-5]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
hibernate - Hibernate 5.3、Spring Data JPA 2.1.4、および Spring 5.1 との EntityManagerFactory および SessionFactory に関する混乱
Hibernate と Spring Data JPA を統合するための新しいメカニズムを理解しようとしました。https://www.baeldung.com/hibernate-5-springで提供されている例に従いましたが、役に立ちませんでした。さらなる調査により、Juergen HoellerによるGithub に関する次のような問題が発生しました。
[...] これは多くの出発点をカバーしています。Hibernate 5.2 および 5.3 では、LocalSessionFactoryBean および HibernateTransactionManager は、多くのシナリオで LocalContainerEntityManagerFactoryBean および JpaTransactionManager の 99% 互換性のある代替品として機能し、SessionFactory.getCurrentSession() との対話を可能にします (同じローカル トランザクション内の @PersistenceContext EntityManager インタラクションの横にある HibernateTemplate も) (#21454)。それはさておき、このようなセットアップは、JPA ブートストラップ コントラクトによって制約されることなく、より強力な Hibernate 統合 (#21494、#20852) とより多くの構成の柔軟性も提供します。
LocalSessionFactoryBeanクラスの対応する Javadoc には、次のように記載されています。
Spring 5.1 の時点で、Hibernate 5.0/5.1 および 5.2/5.3 と互換性があります。Hibernate 5.3 でセットアップされた LocalSessionFactoryBean は、一般的な JPA の目的で LocalContainerEntityManagerFactoryBean の即時の代替手段となります。特に Hibernate 5.3 では、Hibernate SessionFactory は JPA EntityManagerFactory インターフェースもネイティブに公開し、Hibernate BeanContainer 統合はすぐに登録されます。HibernateTransactionManager と組み合わせると、同じトランザクション内で JPA アクセス コードとネイティブ Hibernate アクセス コードを混在させることが自然に可能になります。
Spring Boot 2.1.2.RELEASE で簡単なサンプル プロジェクトを実装しました。シンプルな構成 (上記の Baeldung の例と同じ) を提供し、PostgreSQL データベースに接続します。さらに、理論的には、データを操作するためにモデルとリポジトリを使用します。クラスは次のようになります。
デモアプリケーション.java
BasicConfig.java
モデル.java
DemoRepository.java
次の理由により、アプリを追加するとすぐにDemoRepository
アプリが起動しなくなります。
完全なエラー メッセージ:
SessionFactory
が適切に実装および公開されているという印象を受けましたEntityManagerFactory
が、そうではないようです。私の実装に欠陥があり、Baeldung の例が実際に正しく動作することは確かです。誰かが私にそれを指摘して、私の間違いを理解するのを手伝ってくれることを願っています.
事前にみんなに感謝します。
依存関係:
- spring-data-jpa:2.1.4.RELEASE
- spring-core:5.1.4.RELEASE
- spring-orm:5.1.4.RELEASE
- hibernate-core:5.3.7.Final
- spring-boot:2.1.2.RELEASE
gradle.build
java - 3.6 から Hibernate 5.1 に更新すると、非エンティティ オブジェクト インスタンスが evict 例外に渡される
マッピングに注釈を使用する休止状態 3.6 プロジェクトで作業していましたが、現在はそれを休止状態 5.1 に移行しており、この実行時例外が発生しています 。非エンティティ オブジェクト インスタンスが evict に渡されました 。
以下は、例外がスローされている DefaultEvictEventListener.class のコードです。
私の場合、hibernate 5.1 の場合、perser は null です。明確でない場合は、さらに詳細を提供できます
hibernate-5 - Hibernate 5 HQL の日付関数
だから私は冬眠するのが初めてなので、ここで我慢してください。次のようなmysqlクエリがあります。
hibernate 5 JPQL クエリを使用して同じことを実行しようとしています。これは私が試したことです:
しかし、それはスローしUnexpected token errors
ます。ここで私が間違っていることを誰かが説明してくれませんか?本当にありがとう。
java - Hibernate 5 へのアップグレード時に addDocument(org.w3c.dom.Document doc) を置き換えます
最近、hibernate3 から hibernate5 にアップグレードしましたaddDocument(org.w3c.dom.Document doc)
。非推奨のメソッドが使用されているコードがあります。addUrl
それを、addResource
、またはに置き換えたいのですが、そのaddFile
方法がわかりません。
これが私の方法であり、 configuration.addDocument(hibernateMappingDocument)の代わりに、 addUrl、addResource、または addFile などの別のものを使用したいと考えています。