問題タブ [hibernate3]
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 - 高性能休止状態挿入
私はアプリケーションの遅延に敏感な部分に取り組んでいます。基本的に、ネットワークイベントを受信してデータを変換し、すべてのデータをDBに挿入します。プロファイリングした後、基本的にすべての時間がデータの保存に費やされていることがわかりました。ここにコードがあります
コレクションのサイズは常に 20 未満です。次のタイミング データが表示されます。
これは私を混乱させます。は迅速であるsave
べきであり、すべての時間を に費やさなければならないと考えていcommit
ます。しかし、明らかに私は間違っています。また、トランザクションを削除しようとしましたが(実際には必要ありません)、さらに悪い時間を見ました... hibernate.jdbc.batch_size = 20を設定しました...
1 秒あたり 500 件ものメッセージを取得できると予想されるため、1 つのメッセージ処理を 20 ミリ秒未満にする必要があります。
この操作はできるだけ高速にする必要があります。理想的には、データベースへのラウンドトリップは 1 回だけです。これどうやってするの?
orm - Glassfish v2 を JPA 2.0 にアップグレードしますか?
Glassfish V2 で Spring HibernateJpaVendorAdapter で Hibernate 3.5.5 を使用しようとしていますが、Spring コンテキストが初期化されると次の例外が発生します。
org.hibernate.ejb.util.LogHelper.logPersistenceUnitInfo(LogHelper.java:39) で org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:517) で org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java) で:73)
問題は、Glassfish V2 が、Hibernate に同梱される hibernate-jpa-2.0-api-1.0.0.Final.jar の前にサーバー クラスパスにロードされる JPA1.0 を使用することです。JPA 1.0 には PersistenceUnitInfo に getSharedCacheModel メソッドがありませんが、JPA 2.0 にはあります。
Glassfish V2 をアップグレードして JPA 2.0 (またはこの問題に対する他の解決策) を使用する方法はありますか?
乾杯、
J
java - 休止状態エラーを解決する方法:エンティティのマッピングで列が繰り返されますか?
こんにちは、私は次のモデルを持っています:
そして、私はこのエラーが発生しています:
java - hibernate 3で派生アイデンティティをマップする方法は?
次のような状況があります。
つまり、A と B の間には OneToOne の関連付けがあります。B は弱いエンティティであり、その Id はクラス A から派生しています。
この記事で言及されているように、 @OneToOne の下に @PrimaryKeyJoinColumn を追加して、いくつかのソリューションを既にテストしました。しかし、私はこのエラーを受け取りました: "org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save(): B"
この場合に関連するかどうかはわかりませんが、Oracle 11g を使用しています.
更新しました
私は正しい道を進んでいると思います。これが私の問題の実際の状態です:
エラーは少し異なります。
テーブルBで(AIDではなく)列Aを見つけようとしています。列名がBAではなくB.AIDであることを指定する方法がわかりません
jpa-2.0 - @PostLoad _after_ 熱心にフェッチを実行しますか?
JPA2/Hibernate を使用して、エンティティ X への一方向マッピングを持つエンティティ A を作成しました (以下を参照)。A の中には、@PostLoad メソッドを使用して計算しようとしている一時的なメンバー "t" もあります。計算には、関連する X へのアクセスが必要です。
ただし、このエンティティをロードしようとすると、「org.hibernate.LazyInitializationException: ロード コレクションへの不正なアクセス」エラーが発生します。
デバッグ中に休止状態のコード (AbstractPersistentCollection.java) を見ると、次のことがわかりました。
1) "listOfX" メンバーが初期化される前に @PostLoad メソッドが呼び出さ
れる
これを修正する唯一の方法は、@PostLoad の使用を停止し、初期化コードを getT() アクセサーに移動して、同期ブロックを追加することです。ただし、それは避けたい。
@PostLoad が呼び出される前に熱心なフェッチを実行する方法はありますか? それを行うためのJPA機能を知らないので、知らないことがあるといいのですが。
また、おそらく Hibernate の独自の API には、この動作を制御する何かがありますか?
java - Hibernate: org.hibernate.AssertionFailure: com.xxx.Bean エントリの ID が null です
次のエラーに直面しました:
MySQL テーブルの定義は次のとおりです。
そして、ここに Hibernate マッピングがあります:
Java コード:
KEY ARF_MANUFACTURER_MNF_ID (ARF_MANUFACTURER_MNF_ID)
削除してもAssertionFailure
起こらないことに気づきました。キーを削除せずにこのエラーを回避する方法はありますか?
残念ながら、この解決策は私にはうまくいきません。
java - Hibernate は別のセッションからコレクションを取得します
こんにちは、悪名高い「セッションがないか、セッションが閉じられていません」というメッセージが表示されます。これは、別のセッションで休止状態の永続オブジェクトのコレクションを呼び出そうとしているためです。フィルタに JOIN フェッチ モードを追加します....
GRAVE: ロールのコレクションの遅延初期化に失敗しました: ni.edu.uni.id.data.object.Curso.modulos、セッションまたはセッションは閉じられませんでした org.hibernate.LazyInitializationException: ロールのコレクションの遅延初期化に失敗しました: ni. edu.uni.id.data.object.Curso.modulos、セッションがないか、セッションが閉じられませんでした
java - コードが Hibernate クエリの結果セットを繰り返し処理しないのはなぜですか?
25 個の要素のリストを返すクエリを Hibernate に送信しています。次に、リストを繰り返し処理して各要素を出力します。問題は、要素を繰り返し処理するのではなく、最初の要素を 25 回出力していることです。
最初のクラスのコードは次のAnalAction
とおりです。
ここにあるLocationManager
:
}
java - SpringでHibernateを使用してトランザクションを使用するのはいつですか?
プロジェクトのアップグレード ここでトランザクションについて考えています。問題は、Spring で Hibernate クエリにいつトランザクションを使用する必要がある
かよくわかりません。
トランザクションとは何かを完全に理解していないわけではありませんが、おそらく理解していると思いますが、属性を設定するだけのタイプクエリにトランザクションを使用する必要がありますか?
get*
read-only
get*
それはクエリにとって効率的ですか?
私が考える限り、トランザクションの使用はCREATE
、 、UPDATE
、DELETE
およびそのようなクエリのように行う必要があるためです。
ここで何か不足していますか?
java - Springで特定のtxAdviceをサービスに使用させるには?
私は自分のプロジェクトをアップグレードしようとしているので、トランザクションに来ました。これが私が今までやっていた方法です。
以下のようにトランザクション属性を変更しましたが、サービスを正確にこれにリンクする方法がよくわかりませんtxAdvice
。私は通常、サービスごとに異なるトランザクション属性を持っているため、複数あるはずですtxAdvice
。@Transactional
この特定の txAdvice を使用する方法はありますか?