問題タブ [hibernate-5.x]
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.
java - hibernate セッションの初期化について
私は使用してSpring 4.2.1
おりHiberante 5
、Spring Bean 定義で宣言されたセッションを次のように春が初期化する方法を理解しようとしています。
いわゆるorg.springframework.orm.hibernate5.LocalSessionFactoryBeanが実装されていることがわかりましたFactoryBean<SessionFactory>
。これを考慮に入れるSessionFactory
と、定義をクラスに注入するように定義しているorg.springframework.orm.hibernate5.LocalSessionFactoryBean
のに、最終的に のインスタンスになってしまう理由は明らかですSessionFactory
。さて、私が混乱したのはメソッドgetCurrentSessionです:
これは、実際のセッション作成をSpringSessionContextに委任します。私の場合、このコードによって取得されています。
しかし、session
実際には、それ自体がプロパティprotected transient SessionFactoryImpl factoryorg.hibernate.internal.SessionImpl
を持つ直接基本クラスのインスタンスです。org.hibernate.internal.AbstractSessionImpl
したがって、私の場合は実際のインスタンスを保持SessionFactory
するCurrentSessionContext
プロパティがあります。しかし、再びタイプのプロパティがあります。SessionHolder
Session
SessionImpl
SessionFactory
循環が理解できません。ちょっと説明していただけませんか。
java - Hibernate で奇妙な ClassCast 例外が発生する (トランスフォーマーを使用)
このコード:
このメソッドを呼び出す:
私に ClassCastException を与えます -> トレースの一部:
実際、Hibernate のソース コードを調べると、これを実行しようとするため、これはかなり奇妙です。
これは意味がありません...
target は Class タイプで、このコードはそれを Map にキャストしようとします。
なぜそれをしようとするのですか?
どんなポインタでも大歓迎です...
私はHibernate 5を使用しています(そして3からアップグレードしています)...
編集:Spring (4.2.1.RELEASE; アップグレードも) を使用して、デプロイ時にこれらのメソッドを呼び出します。デバッグ ポインターも大歓迎です...
編集 2: (リクエストに応じて FactCodeDto クラス全体)
hibernate - Hibernate 5.0.3 でインテグレーターを追加する
特定の EventListener をトリガーするために、Hibernate 5.0.3 にインテグレーターを登録しようとしています。Hibernate Getting Started Guide で提供されている例の 1 つを変更しています。うまく機能する元の jUnit テスト クラスは次のとおりです。
setUp() メソッドを次のように変更するだけです。
テスト ケースを実行すると、次のエラーが発生します。
これは私の Integrator クラスです (ただし、Integrator を BootstrapServiceRegistryBuilder に適用しないと setUp() メソッドも失敗するため、これは問題ではないと思います):
そして最後に私の hibernate.cfg.xml:
ご助力ありがとうございます。
java - Hibernate 5 マルチテナンシーとトランザクション
Hibernate 5 のマルチテナンシー機能を使用して、現在シングル テナントであり、Hibernate 4 を使用するアプリケーションでマルチテナンシーを実装しています。トランザクションが確実に管理されるように、Spring に依存しています。
ただし、Hibernate 5 では @Transactional 属性を追加するとエラーが発生します
SessionFactory configured for multi-tenancy, but no tenant identifier specified
同様の問題への回答に基づいて、のメソッドが使用されCurrentTenantIdentifierResolver
ているという事実を説明するためにインターフェイスを実装しました。私はすでにインターフェースも実装しています。getCurrentSession()
SessionFactory
MultiTenantConnectionProvider
ただし、 ClassNotFound 例外が発生していますorg.hibernate.engine.transaction.spi.TransactionContext
。これは、このクラスが Hibernate 5 パッケージで使用できないためであることを理解しています。
Spring 4.1.6 と Hibernate 5 を使用してトランザクションを管理するための適切なアプローチは何ですか?
java - データベースのHibernate 5動的数
Hibernate の複数データベースのサポートについて質問があります。
複数の db サーバーに数千人の顧客が分散しています。各サーバーには約 500 Dbs があります。したがって、すべての顧客は独自のデータベースを持っています (すべてのスキーマはまったく同じで、もちろん内容が異なるだけです)。
その場で Hibernate スイッチ データベースを作成する方法はありますか? すべての調査の結果、使用されているすべてのデータベース (2 つまたは 3 つの異なるデータベースなど) を既に知っているソリューションが得られましたが、動的な問題の解決に役立つものはありませんでした。
hibernate - Hibernate 5.x への移行
アプリケーションを Hibernate 3 から Hibernate 5 に移行していDatabaseMetadata
ますTableMetadata
。したがって、TableMetadata
オブジェクトを使用して、列のサイズ、タイプなどの DB テーブルの列情報を取得します。Hibernate 5DatabaseMetadata
クラスでは非推奨になったようです (削除されました!)。DatabaseMetadata
Hibernate 5のクラスに代わるものはありますか? またはTableMetadata
、Hibernate 5 env に入る方法は?