問題タブ [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 - Hibernate、キーの設定、CompositeUserType、および SQL プロシージャ
Hibernate とカスタム CompositeUserType キーを使用して空でない Set をオブジェクトに返すのに問題があります。
私は一連のテーブルとビューを持っています(ここでは簡略化されています):
データベース機能:
したがって、これらの関数を使用してこのマッピングを実現するには、実装する必要があったCompositeUserType
ため、次のような Java クラスを用意しました。
著者のリストまたはセットが必要です。ただし、この部分を *.hbm.xml ファイルにマップする方法がわかりません。現在、次のようになっています。
しかし、session.load(Article.class, pk)
著者がいることがわかっている記事でこれを実行すると、 Set サイズがゼロになります。それ以外の場合は、Hibernate を使用して挿入、更新、削除に問題はありませんが、今は困惑しています。これは私の ArticleLangPKType に問題があることを示しているように思えます。
これを完了するために何をすべきか考えていますか? セットのサイズが常に 0 なのはなぜですか? Article's Set と提供されている SQL プロシージャを使用して著者を保存するにはどうすればよいですか? Hibernate は私に適していますか? これをはっきりと見るには休憩が必要ですか?
前もって感謝します!
java - 中間テーブルを使用して双方向の関係を管理する Hibernate マッピング
次のようなオブジェクト階層があります。
当事者 > 継承者 > 組織および個人 組織 > 継承者 > 顧客、ベンダー 個人 > 継承者 > 連絡先
データベースには、次のテーブル Party、Customer、Vendor、Contact があります。それらはすべて、Party テーブルに対応する行があります。
連絡先は、ベンダーまたは顧客のいずれかに属します。Contact テーブルに org_party_id のフィールドがあります。ただし、組織は顧客またはベンダーのいずれかになる可能性があるため、さまざまなテーブルを参照できる必要があります。
これを休止状態でマップする方法はありますか? または、DB/休止状態で管理するより良い方法はありますか?
database - grailsドメインクラス内のMapの制約/DBマッピングを調整する方法
次のgrailsドメインクラス:
myMapの場合、grailsはマップ内の要素の新しいテーブルを自動的に作成します。ただし、長すぎる要素(1024文字など)を追加すると、DBエラーが発生します。
どういうわけか、myMapのテーブルのそれぞれの列をより大きな文字列を許可するのに十分な大きさにするようにgrailsに指示できますか、それともDBで手動でこれを行う必要がありますか?
私はすでに試しました
これは機能しません(maxSizeはマップ自体ではなく、マップの値を参照する必要があるため、予想どおり)。
制約を介さない場合は、おそらくそれを行う方法があります
?
hibernate - Hibernate:OneToManyマッピングはPKに基づいていませんか?
2 つのエンティティ/テーブルがあります。
1つは適切なエンティティです。それを と呼びましょうdata
。いわゆる「多言語コード」を含む多くのフィールドがあります。
2 番目のテーブル にcode
は、多言語の値自体が含まれています。
ここにいくつかのサンプルデータがあります:
次のように、データエンティティのプロパティの大陸、国などをマップとしてマップしたいと思います。
そのため、次のように適切な言語のテキストを読むことができます。
また、ユーザーの言語を使用して、これらの「コード」の値をテキスト検索できるようにする必要もあります。(たとえば、フランス語で country='suisse' のすべてのデータを取得します!)
OneToMany
では、現在のエンティティの主キーではないキー フィールドを使用してコレクションをマップすることは可能ですか? 大陸コレクション「コード=私のcontinentCode
財産の値であるコードテーブルからのすべてのレコード」が必要です。それとも、この種の関係を表現するためのより適切な方法があるのでしょうか?
NB : 残念ながら、SQL スキーマを変更することはできません...
java - Hibernate でのバッグタグの使用は何ですか?
バッグタグの使い方とその目的は何ですか?
java - postgresシリアル/bigserial列用の適切なHibernateIDジェネレーター?
私のPostgreSQLテーブルにはタイプのIDがありbigserial
ます。つまり、行が挿入されたときに生成されます(したがって、id列の値はINSERT
ステートメントで指定されません)。<generator class="...">
XMLマッピングファイルで属性の適切な値を見つけるのに問題があります。
以下のコードは私が見つけた最も近いもので、Postgresに最も近いようですが、SELECT nextval(...)
挿入する前にシーケンスに対して実行されています(そして、挿入にidフィールドの値を明示的に含めます)。Hibernateにidフィールド値をまったく含めないようにし、Postgresが値自体を生成できるようにします。
java - Hibernateがデータベースから計算フィールドを取得しようとするのを停止します
計算されるビジネスオブジェクトのプロパティがあります。計算にはログインしたユーザーの詳細の一部が含まれるため、単純なSQLクエリとして表すことはできません。
その名前の列がないにもかかわらず、Hibernateがデータベースからフィールドを取得しようとし続けるため、HibernateマッピングXMLファイルでフィールドを表すのに問題があります。
hibernate - HibernateToolTask (hbm2hbmxml) は、@org.hibernate.annotations.Index 注釈からの hibernate-mapping でインデックスを生成しません
休止状態の注釈を使用して、POJO から休止状態のマッピングを生成しようとしています。次に、liquibase を使用してデータベース スキーマを生成します。そのため、POJO でインデックスを定義する必要があります。
サンプル POJO:
しかし、ant で HibernateToolTask を実行すると、次のようになります。
マッピングでインデックスを取得しません:
同時に、hbm2ddl を実行すると、「インデックスの作成」が生成されます。
マッピングで休止状態にインデックスを生成させるにはどうすればよいですか?
アップデート:
私は、liquibase が注釈を使用してスキーマを生成することを発見したので、問題のこの部分は解決されました。私はまだ別のものを持っています:
既存のデータベースを POJO にリバース エンジニアリングしたいと考えています。POJO はマッピングから生成され、マッピング (jdbcannotation-hbm2hbmxml を使用して生成) にはインデックスがありません。これは本質的に同じ問題だと思います: hbm2hbmxml はインデックスを生成しません。
更新 2:
なぜそれが必要なのですか?既存のデータベース スキーマがあります。以前はそれを変更してから、POJO をリバース エンジニアリングしていました。ここで、POJO を操作し、アノテーションによってマッピングとスキーマを生成したいと考えています。
そのため、現在のデータベース スキーマに一致する POJO を使用して先に進みたいと考えています。どうやら、外部キー名とインデックス以外はすべて一致しています。しかし、hbm2java は @Index アノテーションを生成しません。
このタスクは ddl でインデックスを生成し、POJO でインデックスを生成しません。
java - Hibernate の 1 対多のマッピングはリストでは機能しますが、セットでは機能しませんか?
お手数をおかけして申し訳ありませんが、これは非常に単純な質問かもしれませんが、何らかの理由で以下のバージョンは解析に失敗しますが、set を含むバージョンは正常に動作します。実際、セットのバージョンを取り、セットをリストに置き換えると、次のようになります。
ネストされた例外は org.hibernate.InvalidMappingException: 無効なマッピングからマッピング ドキュメントを解析できませんでした
ミーシャありがとう
sql - 結合列名が異なる 2 つのテーブルの結合
多対 1 のマッピング/関連付けを持つ 2 つのテーブル A -> B があります。
テーブル B の主キーは、テーブル A の外部キーです。
問題は、両方のテーブルの列名が異なることです。Bには、テーブルAの外部キーである主キー列「typeNumId」が「タイプ」としてあるとします。この列で両方のテーブルを結合するにはどうすればよいですか? 基本的に同じである「typeNumId」と「type」でテーブルを結合する必要があることを示すマッピングを指定するにはどうすればよいですか。
特に、これは hibernate config (hbm ファイル) を介して可能ですか?
何かのようなもの