問題タブ [hibernate-mapping]
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 クラスの分割
私は本質的にコレクションの負荷の単なるラッパーである Hibernate クラスを持っています。
したがって、クラスは(大幅に単純化/疑似)次のようになります。
これらの各マップには、それに関連付けられたいくつかのメソッドがあります (追加/削除/尋問/など)。
ご想像のとおり、10 番目のコレクションを追加する頃には、クラスのサイズは少しばかげています。
私がやりたいのは、次のようなものです。
さまざまなメソッドがすべてこれらのクラスにまとめられています。
おそらくこれを使用できると思い@Embedded
ましたが、機能させることができないようです (Hibernate は、wrapperClass 内で Map を永続化しようとさえしません)。
誰かがこれまでにこのようなことをしたことがありますか? ヒントはありますか?
どうもありがとう、
ネッド
hibernate - HBM で列挙型をクラス プロパティとして追加する
Enum をフィールドとして含む HBM ファイルにクラスを作成しようとしています。
HBM は次のようになります。
これがEnumであるとしましょう:
問題は、DB でその列挙型 (a、b、または c) の文字列値が表示されることを期待していましたが、代わりにそのフィールドの生データを取得したことです。
どうすれば解決できますか?
java - hibernate hbm.xml マッピングを jar に埋め込む
休止状態のマッピング hbm.xml を jar に埋め込み、applicationContext.xml での手動参照を避けることは可能ですか?
それをjar / etcに向けますか?
Nhibernate には、hbm を取得する場所からアセンブリを指すオプションがあります。
注釈はオプションではありません
編集: 編集:私の意図は、hbmへの手動参照を削除し、休止状態がそれを拾うことができる一般的な場所を指すことです
hibernate - lazy=false である Hibernate の第 2 レベルのキャッシュ オブジェクトは、デフォルトの fetch=join になります。どこかに文書化されていますか?
次の明らかに文書化されていない問題が発生しました。
- 私は何か悪いことをした
- 誰かが同じ問題に遭遇しましたか?
- 本当にどこにも文書化されていませんか?または私は何かを逃しましたか?
動作はこれです 次のマッピングを想定します
まず、背景として、多対 1 のリレーションのfetch属性の Hibernate のデフォルト値は「 select」である必要があります。これは少なくとも文書化されているものです (見つけたらここにリンクを追加します)。
ただし、これは、参照されるクラスが lazy="true" である場合にのみ当てはまります。
したがって、明らかに上記のマッピングは次のように変換されます (Bar は lazy="false" であるため):
では、なぜそれが問題になるのでしょうか。2 つの選択の代わりに、Hibernate は非遅延参照をその「親」を使用して単一の選択でロードします (単一の選択で Bar を使用して Foo をロードします)。
オブジェクトは遅延していないので、これは実際に理にかなっています。ロードしないのはなぜですか?
答えはこうです: Bar が第 2 レベルのキャッシュにある場合はどうなりますか?
その答えは、何も変わらないということです。
どうやら、Hibernate はこのタイプのオブジェクトをロードしてはならないことを理解できるほどスマートであると想定するでしょうが、デフォルトのフェッチが select から join に変更されたため、Hibernate には選択の余地がありません (実際のテーブルを第 2 レベルのキャッシュ、まだ)
そのため、Hibernate は指示されたとおりに実行し、結合を使用して、既に第 2 レベルのキャッシュにあるデータベースからオブジェクトをフェッチします。
私が見つけた解決策は、文字通りマッピングを fetch="select" に変更することです
Bar の 2 番目の選択が実行されようとすると、Hibernate はそれがデータベースに送信されるべきではないことを認識し、キャッシュからフェッチします。1つのクエリのみが実行されます(ウォームアップ後)
mysql - MapフィールドにMySQLで適切な列タイプを使用するようにGrailsに強制する方法
Grails 1.1.2 + MySQL に問題があります。
私のドメインクラスSomething containsフィールド
アプリを実行すると、Grails はテーブル 'something' とサブテーブル 'something_price_map' を作成します。「something_price_map」には含まれています
問題は、この「priceMap:[en:[100:4, 500:20, 600:24]]」のような小さな地図データでも priceMap 列に入力すると、データのサイズが制限を超えてしまうことです。 255バイト。
Grails が TINYBLOB の代わりに MEDIUMBLOB または BLOBK を使用するように、内部マップ (マップ) に maxSize 制約を指定する方法はありますか?
ところで...メモリ内DBを使用すると、すべて正常に動作します。
java - オブジェクト間マッピングなしで外部キーを適用することは可能ですか?
次のマッピングが提供されていると仮定します。
Javaクラス:
起動時にHibernateによって外部キーが引き続き適用および作成されるように、Hibernateマッピングを変更することは可能ですか?ただし、クラスA
は次のようになります。
これに変換すると機能することは理解して<many-to-one...
い<property...
ますが、外部キーはデータベースによって強制されません。
オブジェクトB
が個別に初期化される場合と
されない場合があり、が呼び出されたorg.hibernate.LazyInitializationException: could not initialize proxy - no Session
ときに例外が発生することがあるため、これを行う必要があります。私はそれをとして持っていて、必要なときはいつでもオブジェクト全体をロードa.getB()
したいと思います。long idOfB
これにより、オブジェクトの読み込みもA
速くなります。
私の質問はこれa.getB().getId()
と非常に似ていると思いますが、提供された解決策(遅延読み込みを使用する)は私の場合は適切ではありLazyInitializationException
ませa.getIdOfB()
ん。
よろしくお願いします。
java - プロパティのリストのサイズを取得する
B要素のリストを持つクラスAがあります。
私のAクラスでは、次を追加したいと思います:
これは、B 要素の数で評価されます。だから私が電話するとき、私はmyA.getSize()
それを持っています。
休止状態のマッピングで単一のプロパティを使用してカウント クエリをマップすることは可能ですか?
リストをロードしたくないので、サイズ プロパティを追加したいと思います。
hibernate - Hibernateマップマッピングの問題
こんにちは私は次のようにHibernateでマップを永続化しようとしています:
このマッピングを行うための正しい注釈は何でしょうか?現時点では、キーセットを会社のオブジェクトとしてではなく、intとして保存しています。
Thxs。
sql - Hibernate - where 句で外部キーを使用する場合の不要な結合の回避
Hibernate でデータベース クエリを最適化しようとしましたが、ブロッカーが見つかりました。
Country の主キーはCTRY_CD_ID
. 次の基準を実行すると
hibernate が ctry と AR_SUPPORTED_LANG テーブルに参加していることがわかります。なんで?走ったほうがいい
ではなくSQL
hibernate に最初のクエリを実行させることはできますか?
nhibernate - NHibernateの別のテーブルからのフィールドへのプロパティのマッピング
次のクラスを検討してください。
これはOrdersテーブルにマップされます。外部キー関係を介してプロパティCustomerNameをCustomersテーブルにマップすることは可能ですか?