問題タブ [hibernate]
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 - Spring: MessageSource に基づいて ResourceBundle を取得する
Springで休止状態バリデータフレームワークを使用しています。Spring Validator を実装するクラスは、Hibernate の ClassValidator でオブジェクトを検証します。ClassValidator のエラー メッセージをローカライズするには、ResourceBundle をクラスのコンストラクターに渡す必要があります。私の ApplicationCountext には、アプリケーション全体で使用される MessageSource Bean (ReloadableResourceBundleMessageSource) があります。これと同じ MessafeSource を ClassValidator に使用することは理にかなっています。しかし、MessageSource を ResourceBundle に変換するにはどうすればよいでしょうか? アダプタークラスはありますか?
java - 選択クエリとカウントクエリを実行するよりも、Hibernate でページネーションを作成する効率的な方法はありますか?
通常、ページネーション クエリは次のようになります。2 つのほぼ同等のメソッドを作成する代わりに、より良い方法はありますか? そのうちの 1 つは「select *...」を実行し、もう 1 つは「count *...」を実行しますか?
hibernate - 既存のHibernateエンティティに(外部)関係(タグ付け)を追加します
既存のHibernateエンティティに新しい多対多の関係を追加する必要があります。元のHibernateエンティティBeanまたはその構成には触れたくありません。私が追加しているのは、エンティティのデータ自体の一部ではなく、外部からの貢献と見なすことができる「タグ付け」機能です。
エンティティの主キーとタグIDの2つの列のみを持つ単純な結合テーブルが必要です。
単一のタグマッピングを含む新しい(人工の)エンティティタイプを導入せずに、Hibernateを使用してこのテーブルを管理できますか?
または、誤った方向に進んでいて、後で属性(タイムスタンプなど)を追加できるように、実際にこの「関係エンティティ」が必要ですか?
hibernate - 弁別器を使用したHibernateマッピング
記述子の値(Project、TimeKeep、またはCostCenter。通常、これはサブクラスで実装されます。私が持っているものがあるかどうか疑問に思っています)に基づいて、他の3つのテーブルのいずれかで外部キーを指すことができる1つのフィールドを持つテーブルがあります。サブクラス名は親クラスと同じであり、noteObjectプロパティはjava.lang.Objectタイプのインスタンス変数にマップされるため 、にキャストする限り、Project、TimeKeep、またはCostCenterオブジェクトのいずれかを受け入れる必要があります。正しいタイプです。休止状態でこれが可能になりますか?ありがとうございます。
hibernate - Hibernate エラー「同じエンティティ名を 2 回使用する」の修正
次の Hibernate エラーを修正する方法:
「同じエンティティ名を 2 回使用する」とは何ですか。
java - アンマネージドスレッドSpringQuartzWebsphere Hibernate
Quartz-JDBCJobStoreをSpring、Hibernate、およびWebsphereと一緒に使用する実装では、アンマネージスレッドがスローされているようです。
私はいくつかの読書をしました、そして、SpringでQuartzの使用がそれを引き起こすであろうと述べているIBMからの技術記事を見つけました。彼らは、この問題に対処するためにCommnonJを使用することを提案しています。
私はさらに調査を行いましたが、これまでに見た唯一の例は、データベースにない古いJobStoreを扱っています。
だから、誰かがこの問題の解決策の例を持っているかどうか疑問に思いました。
ありがとう
java - Java JPAのクエリ「レイヤー」の優れた設計は何ですか
JPA では、エンティティは注釈付きのプレーンな古い Java オブジェクトです。しかし、それらとデータベースを操作する良い方法が見つかりませんでした。
私の現在のアプリでは、基本的な設計は常に主キーとしてシーケンス ベースの ID を持つため、通常は PK 以外のプロパティでエンティティを検索する必要があります。
そして、エンティティごとに、次のステートレス EJB があります。
すべてが何らかのバリエーションであるクエリメソッドを使用
そう:
これらのメソッドがエンティティ自体に属しているように見えるため、EJB にこれらのメソッドを含めるのは本当に嫌いです。また、EJB ローカル インターフェイスは、私を悩ませます。
「try、createQuery、getResultList、catch、log、return」を使用して各メソッドに重複があるのは嫌いです(ほとんどの場合、クロージャーがないか、「withステートメント」などのJavaの結果です)。
私の問題の 1 つまたは両方に対処するエンティティおよびデータベースとやり取りするためのより良い方法について、誰か提案がありますか?
私は現在、ジェネリックとリフレクションを使用していくつかの基本メソッドを実行して、重複を減らすためにいくつかのジェネリッククエリメソッドを取得することを考えています (問題 2) (後でレビューのためにプロトタイプを公開します)。
ありがとう、アンダース
hibernate - 更新/挿入しようとすると、Hibernate が削除しようとするのはなぜですか?
私のアプリには、これらの Hibernate マップ型があります (一般的なケース):
すべてのクラスにはequals() & hashCode()
オーバーライドがあります。
私のアプリケーションでは、ロールの微調整が可能で (システム管理者のみ、心配しないでください)、他のフィールドの中でも、新しいロール ルールの作成が可能です。新しいルールが作成されると、新しいRoleRule
オブジェクトを作成してロールのフィールドに挿入しようとしますrules
。session.update(role)
データベースに変更を適用するために呼び出します。
醜い部分が来ます... Hibernateは、トランザクションを閉じてフラッシュするときに次のことを行うことにしました:
- 新しいルールをデータベースに挿入します。優秀な。
- 他の役割フィールド (コレクションではない) を更新します。ここまでは順調ですね。
- 何も変更されていない場合でも、既存のルールを更新します。私はこれで暮らすことができます。
- 既存のルールを再度更新します。自動コメントを含むログからの貼り付けは次のとおりです。
もちろん、すべてのフィールドは非 null であり、この操作は見事に失敗します。
Hibernateがこれを行う理由を誰か説明できますか??? そしてさらに重要なのは、どうすればこれを回避できるのでしょうか???
編集:マッピングに関係があると確信していたので、上司が気まぐれに削除しequals()
、hashCode()
両方のクラスでEclipseを使用してそれらを再作成し、不思議なことにこれで問題が解決しました。
私はまだ私の質問について非常に興味があります。Hibernateがこれを行う理由を誰かが提案できますか?
java - 奇妙な Hibernate キャッシュの問題
Spring MVC 2.0 で Hibernate 3.1 を使用しています。私たちの問題は、データが (アプリケーションではなく) データベースで直接更新されたときに発生します。Filter を使用して、注文がオープンかクローズかによって結果のコレクションをフィルタリングします。DB の注文をクローズするように変更すると、フィルターは正しいリストを返しますが、オブジェクトのステータスは変わりません。
- 二次キャッシュまたはクエリ キャッシュは有効になっていません。
- DB からのコレクションの取得は、Hibernate の Session.createQuery を介して行われます。
- また、接続された 1 つの SessionFactory があり、アプリケーション全体で 1 つのセッションを使用します。
オブジェクトが正しいステータス結果を表示するのは、サーバーを再起動したときだけです。これは定期的に行う必要はありません。
java - Hibernateコレクションを適切にシリアル化する方法は?
Hibernateで取得されたデータベースからオブジェクトをシリアル化しようとしていますが、オブジェクトの実際のデータ全体(サイクルを含む)にのみ関心があります。
今、私はXStreamを使用していますが、これは強力なようです。XStreamの問題は、情報を盲目的に見ていることです。すべてのHibernateメタデータが含まれている状態で、HibernateのPersistentCollectionsをそのまま認識します。それらをシリアル化したくありません。
したがって、PersistentCollection内から元のコレクションを抽出し、オブジェクトが指している可能性のあるすべての参照データを初期化する合理的な方法はありますか。それとも、より良いアプローチを私に勧めてもらえますか?
(Simpleの結果は完璧に見えますが、Calendarなどの基本的なutilクラスには対応できません。また、一度に1つの注釈付きオブジェクトのみを受け入れます)