問題タブ [hbmxml]
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 Map with unknown element type
I'm wondering if it's possible to define a map with unknown (Object) element type.
I have an object with the following map defined:
Sometimes an attribute can be a String
and sometimes it can be a java.util.Date
Is there any elegant way to handle such a data object in Hibernate?
BTW I'm using HBM XML
Thanks!
hibernate - Hibernate 4: 1 つのクラス マッピング 2 つのテーブル - 両方のテーブルで 1 つのオブジェクトを永続化する方法は?
私はこのクラス Person を2つのテーブルにマッピングしています: Persons と PersonsAUD (監査):
このオブジェクトを次のように 2 つのテーブルに保存しようとしています。
ただし、監査行ではなく、最初の行のみが挿入されます。おそらく休止状態で人の状態をチェックし、すでに保存されていることを確認します。
休止状態に強制的に両方のテーブルに同じオブジェクトを保存させる機会はありますか?
前もって感謝します。
java - entity-name を使用した Hibernate クエリ
POJO を使用して 2 つのテーブル (メインとバックアップ) を定義しています。両方の XML クラスが同じ Java クラスを参照しています。
参照 : Hibernate XML マッピング ファイルで同じ POJO を複数のテーブルにマッピングする
POJO 定義:
さまざまなテーブルに作成できます。また、
API これらのテーブルに新しいレコードを個別に追加できます。
取得中はHQLを使用しています
Table1 と Table2 のすべてのレコードが返されます。Table2 を指定しようとすると、「Table2 がマップされていません」というエラーが表示されます
table1 と Table2 のみから個別にレコードを取得する方法はありますか。
java - SaveOrUpdate スキップ テーブル
Hibernate V.4.1.8 最終版
春: 3.1.3 リリース
シナリオ:顧客登録プロセス中に、ユーザーは完全に入力します。彼は、フォームを確定する前にフォームを複数回保存することが許可されており、送信をクリックして内容を確定します。アプリケーションは、最終送信後にのみ顧客 ID を作成します。この機能を実現するために、同じ POJO に基づいて 2 つのテーブルを作成しています。参照: 同じ POJO を複数のテーブルにマッピングする
問題: Customer テーブルにデータを保存するとき。hibernate はレコードを Address テーブルに挿入し、直接 family テーブルに挿入しますが、customer テーブルは無視します。したがって、例外をスローします: 子行を追加または更新できません: 外部キー制約が失敗します
custDetail オブジェクトがバックアップ テーブルと顧客テーブルにある間は、SQL シーケンスを参照してください。
バックアップ テーブルへの挿入
顧客テーブルへの挿入
テーブル定義:
バックテーブル:
保存方法:
顧客メソッドの承認
顧客テーブルで例外が発生していません。DOZER を使用して、session.clear/flash/evict/merge/replicate などを使用してオブジェクトをデタッチしようとしましたが、進行しません。私もカスケードオプションを削除しようとしました。
どこが間違っているのかわかりません。助けてください。
よろしく、
シリッシュ
c# - NHibernate マッピング .hbm.xml ファイルのビルド アクションを構成する方法はありますか?
NHibernate マッピング .hbm.xml ファイル自体または少なくとも別の構成 xml ファイル内から NHibernate マッピング .hbm.xml ファイルのビルド アクションを構成する方法はありますか?
Microsoft Visual Studio 2010 の多くの機能を高く評価していますが、次のようにして手動でこの hbm.xml ファイルのビルド アクションとして「埋め込みリソース」を設定するのは好きではありません。
- (手動のアプローチは嫌い)(Microsoft Support Docs) 対象のファイルを右クリックし、[プロパティ] を選択します。
- (手動のアプローチを好まない)(Microsoft サポート ドキュメント)[プロパティ] ダイアログ ボックスで、[ビルド アクション] プロパティを見つけます。デフォルトでは、このプロパティは Content に設定されています。プロパティをクリックし、Build Action プロパティを Embedded Resource に変更します。
また、CSharp コードでプログラム的に行うのも好きではありません。NHibernate マッピング .hbm.xml ファイル自体または少なくとも別の構成 xml ファイル内から NHibernate マッピング .hbm.xml ファイルのビルド アクションを構成する方法はありますか? 誰かがxmlを使用してそれを行う方法を提案してもらえますか?
c# - NHibernate セッションを使用して複合キーを含むブリッジ テーブルに保存しようとすると、外部キー違反が発生するのはなぜですか?
私たちのオフィス チームは、.NET Framework 4 と NHibernate 3.3.1 を使用する ASP.NET プロジェクトに取り組んでいます。
私は AllResourcesInfo という POCO ドメイン クラスを持っています (これは最終的にデータベース内のリソース テーブルにマップされ、他のテーブルに内部結合されますが、簡単にするために、AllResourcesInfo がリソース テーブルにマップされているとしましょう)。
Section という POCO ドメイン クラスもあります (これは最終的にデータベースの Section テーブルにマップされます)。
ResourcesInSectionBridge という POCO ドメイン クラスもあります (これは、最終的に ResourcesInSectionBridge というデータベースのブリッジ テーブルにマップされます)。
命名規則が示すように、ResourcesInSectionBridge は Resource と Section の間のブリッジ テーブルです。
ResourcesInSectionBridge には複合キーが含まれているため、ResourcesInSectionIdentifier という POCO 複合キー識別子を作成し、Equals(object obj) メソッドと GetHashCode メソッドも定義しました。
NHibernate セッションを使用して ResourcesInSectionBridge テーブルの新しいエントリを保存すると、エラーが発生します。
例外の詳細: System.Data.SqlClient.SqlException: INSERT ステートメントが FOREIGN KEY 制約 "FK_ Resources _Resou__22CA2527" と競合しました。データベース「perls」、テーブル「dbo.Resources」、列「ResourceDatabaseID」で競合が発生しました。ステートメントは終了されました。
AllResourcesInfo.hbm.xml のマッピングは次のとおりです。
Section.hbm.xml のマッピングは次のとおりです。
最後に、ResourcesInSectionBridge.hbm.xml マッピング ファイルは次のようになります。
最後に、ResourcesInSectionBridge テーブルにエントリを作成しようとする C# コードは次のとおりです。
NHibernate セッションを使用して ResourcesInSectionBridge テーブルの新しいエントリを保存すると、エラーが発生します。
例外の詳細: System.Data.SqlClient.SqlException: INSERT ステートメントが FOREIGN KEY 制約 "FK_ Resources _Resou__22CA2527" と競合しました。データベース「perls」、テーブル「dbo.Resources」、列「ResourceDatabaseID」で競合が発生しました。ステートメントは終了されました。
このエラーが発生する理由を教えてください。また、問題を解決する方法を教えてください。
c# - NHibernateをSystem.Guid.Emptyの値でC#POCO Guidプロパティを「変換」して、データベースの一意の識別子フィールドにNULLとして保存しますか?
私たちのオフィスチームは、.NETFramework4とNHibernate3.3.1を使用するASP.NETプロジェクトに取り組んでいます。
AllResourcesInfoというPOCOドメインクラスがあります(これは、最終的には他のテーブルに内部結合されているデータベース内のResourceテーブルにマップされますが、簡単にするために、AllResourcesInfoはResourceテーブルにマップされるとしましょう)。
また、DepartmentというPOCOドメインクラスがあります(これは最終的にデータベースのDepartmentテーブルにマップされます)。
AllResourcesInfoは、部門と多対1の関係を持つ可能性があります。
AllResourcesInfoのインスタンスが部門に属している場合、AllResourcesInfo.DepartmentDatabaseIDには、Departmentエンティティにある有効なDepartmentDatabaseIDがあります。
ただし、AllResourcesInfoのインスタンスが部門に属していない場合、AllResourcesInfo.DepartmentDatabaseIDのデータベースの値はNULLになります。データベース。
NHibernateを使用してAllResourcesInfoテーブルから値を取得する(基本的にNHibernateはデータベースの読み取りを行う)と、NHibernateはAllResourcesInfo.DepartmentDatabaseIDのC#POCOプロパティに00000000-0000-0000-0000-000000000000値(つまり、System.Guid)を入力します。 .Empty value)AllResourcesInfoが部門に属していない場合
ただし、NHibernate Sessionを使用して、どの部門にも属していないAllResourcesInfoの新しいC#POCOインスタンスを保存する場合、AllResourcesInfo.DepartmentDatabaseIDのPOCOプロパティに00000000-0000-0000-0000-000000000000値(つまり、システム)を入力します。 .Guid.Empty value)しかし、00000000-0000-0000-0000-000000000000のGUID値がデータベースのDepartmentテーブルに存在しないため、データベースは明らかにエラーをスローします。
要約すると、NHibernate Session Saveは、uniqueidentifierフィールドの値をnullのままにしたい場合、データベース内のuniqueidentifierフィールドをNULLの値で保存(または残す)できません。
NHibernateがSystem.Guid.Emptyの値を持つC#POCO Guidプロパティをデータベースのuniqueidentifierフィールド値に対してNULLとして保存(または残)することを保証する方法を教えてください。
java - 休止状態は列の長さをチェックしますか?
db へのアクセス権と、hbm.xml ファイルへの読み取り専用アクセス権しかありません。列のサイズを大きくする必要があります。このテーブルの hbm.xml ファイルのテーブル/列定義には、属性の長さがありません。この場合、アプリケーションは列サイズを大きくしても動作するはずですか?
hibernate - 主キーなしでデータベース ビューをマップするには、hibernate xml マッピングで
データのみをフェッチするために使用されるビューを作成しました(読み取り専用)
ビュー: Grid_View
> 私の Hibernate hbm ファイル
> 私の見解ではそれらは主キーではないため、マッピングで id フィールドについて言及していません。 ただし、休止状態では ID が必要です。
> 私の質問
ハイバネート マッピング ファイルで ID なしでマッピングを続行する方法。また、それらは一意の値を持つ列ではないため、それらをキーにする可能性はありません。この問題の解決を手伝ってください