問題タブ [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.
java - エンティティ作成時の静的プロパティ データの追加
ユーザーと国という 2 つのエンティティ タイプがあるとします。
国エンティティは作成されず、変更できません。ISO alpha3 国コード (例: "USA") がキーになっています。それらは、PK 列 ID を持つテーブル COUNTRY に存在します。
ユーザーには、国への多対 1 のマッピング (カスケード = なし) があります。ユーザーは、COUNTRY(ID) を参照する FK 列 COUNTRY_ID を持つ USER テーブルに存在します。
新しいユーザーを作成するとき、私は次のようなことをするかもしれません:
ただし、最初にCOUNTRYに対するクエリが必要なため、これは無駄だと思います。だから私はこれもできることに気づきました:
cascade = "none" であるため、COUNTRY テーブルをクエリする必要はありません。「USA」を COUNTRY_ID として USER に直接挿入するだけです。あれは正しいですか?
ここで、COUNTRY_ID = "USA" のユーザーのみを作成するコードがあるとします。その場合、Country の静的インスタンスを ID = "USA" で保存し、それを新しいユーザーごとに使用することにしましたか? 例えば:
persistUser() が複数のスレッドから、また複数の永続化コンテキスト内から同時に呼び出されると仮定します。
私の質問:
永続的な User エンティティは、シングルトンの "USA" Country インスタンスを何らかの方法で変更しますか?
これは、他のいくつかの理由でまったくお勧めできませんか?
上記の 2 つのクラスは、問題を説明するためのものです。私は実際にはそれほど愚かなことはしていません。
hibernate - Hibernate:1対多を別のデータベースにマッピングする方法は?
ユーザーとメッセージの2つのクラスがあります。
1人のユーザーが複数のメッセージを持つことができます。
つまり、これは1対多の関連付けです。
私のusersテーブルは最初のデータベースにあり、messagesテーブルは2番目のデータベースにあります。
どうすればそれらをマッピングできますか?
ユーザーとメッセージテーブルのマッピング:
これらのクラスがマップされている2つの*.cfg.xmlファイルもあります。
私のテストコードスニペット:
エラーが発生します:アソシエーションがマップされていないクラスを参照しています:com.example.hibernate.Message
PS私のHibernateUtilUserクラス:
hibernate - hibernate @CollectionOfElements が保持されない
こんにちは、
これまでのところ、十分満足して Hibernate を使用しています。最近、アノテーションを使用して @CollectionOfElements を永続化できないようです。
次のように、RoomGroups のマップを含むクラス Estate のオブジェクトを保存しています。
RoomGroup は正しく保持されます。また、RoomGroup は MasterPrice とも関係があります。
これまでのところ、MasterPrice 要素は正しく DB に格納されています。現在、MasterPrice 内には別のコレクションがあり、これは永続化されないようです。
クラスMasterPriceItemは次のように定義されています
MasterPriceItem で equal/hashCode メソッドも定義しましたが、休止状態がこれを永続化していないようです。例外は発生せず、ロードしようとすると常に NULL になります。
hibernate_3.3.1.ga を使用していますが、試してみることはできますか? クラス MasterPriceItem は、休止状態によって正しく分析されます [テーブルにないフィールドを配置すると、エラーが発生します]
どんな助けでも大歓迎です。どうも。
java - 休止状態マップ>
次のテーブルがあります。
state
クラスで取得map<key, set<value>>
したいMap<Event, set<StateEventAction>>
Hibernateでどうすればできますか?
hibernate - XMLを使用するHibernate3の1つのSessionFactoryで複数のデータベースを使用することは可能ですか?
たとえば、catalog
属性を使用できますかschema
、それとも使用できますか?
現在、いくつかのデータベースといくつかのセッションファクトリを使用していますが、外部キーによってこれらのデータベース間の関係を作成したいので、理解できる限り、1つのSessionFactoryを使用する必要があります。たぶんいくつかのサンプル構成、どうすればそれを達成できますか?
前もって感謝します
java - 子が複合キーを持ち、その一部が親の主キーである Hibernate で多対 1 の関連付けをマップするにはどうすればよいですか?
次のような(レガシー)テーブル構造があります。
つまり、子の主キーの一部が親の主キーになります。これを次のようにマップしようとしました(xmlベースのHibernateを使用しています):
Java クラス:
更新: 間違ったリレーション タイプ (更新済み) を使用していましたが、別の問題があります。テーブルに子行を作成するときに、parentid が null のようです。parentid は複合キーの一部であるため、挿入は失敗します。
ログから:
java - OracleDialect クラスを持つ hibernate jar はどれですか?
いくつかのアプリを介して GridSphere をインストールしようとしています。データベースを作成する Ant タスクがあります。そのため、hibernate.properties ファイルを (HSQL の代わりに) Oracle を使用するように変更しましたが、次のエラーが発生します。
私の方言設定は次のとおりです。
私はOracle10gを使用しています
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であることを指定する方法がわかりません
hibernate - 自動コミットとSpring宣言型トランザクション
で注釈が付けられた単一のサービスメソッドがありPropagation.Required
ます。3つの別々の操作を実行します。
- テーブル1にレコードがない場合は、テーブルzからテーブル1に挿入します。
- ユーザーの編集/追加に従ってテーブル1を挿入/更新します
- テーブル1からxレコードを削除します
私の無知を許してください、しかしこれらすべてが単一のトランザクションの下で実行されるべきではありませんか?ある意味で、3番目のクエリで例外が発生した場合、1番目と2番目のロールバックも実行すべきではありませんか?私の場合、これは起こりません。休止状態の自動コミット設定は、txn境界に何らかの影響を及ぼしますか?私の場合、自動コミットはtrueに設定されています。私が必要としているのは、すべてが成功した場合にのみ、これらのテーブルのいずれかでコミットを実行する必要があるということです。