問題タブ [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.

0 投票する
2 に答える
3794 参照

java - Hibernate は、埋め込まれた ID 複合主キー クラスの @Column で読み取り専用を許可しません (バグ?)?

DB 設計 (DDL) は次のとおりです。

Zip クラス + 複合主キー クラスは次のとおりです。

休止状態のスタック トレース:

これは何ですか?country_code は、複合主キー クラスで読み取り専用 (挿入可能 = false、更新可能 = false) としてマップされます。これは EclipseLink と完全に連携します。IIRC @Embeddable クラスでは、その列で @Basic、@Column、@Enumerated、@Temporal、@Lob、および @Embedded が許可されるため、これは機能するはずです。コードは JPA 1.0 と互換性があることに注意してください。

@JoinColumnにinsertable = false、updatable = falseを設定すると例外は消えますが、これは私が望むものではありません。関連付けを書き込み可能にしたい...

これは休止状態のバグですか? Hibernate 3.6 安定版を使用しています。

0 投票する
1 に答える
875 参照

oracle - エラー 500: ハイバネート マッピングでコレクションを初期化できませんでした

私はHibernateの初心者です。本当に私を夢中にさせる以下のエラーのデバッグを手伝ってくれることを願っています。

CONTENT_WORKGROUP_ROLE という別のテーブルにマップされる CONTENT_WORKGROUP というテーブルを取得しました。以下は、テーブル構造とサンプル データです。

CONTENT_WORKGROUP

  1. CM_WORKGROUP_ID NUMBER(15,0)
  2. WORKGROUP_ID NUMBER(15,0)
  3. ROLE_ID VARCHAR2(20バイト)

CONTENT_WORKGROUP_ROLE

  1. CM_WORKGROUP_ROLE_ID NUMBER(15,0)
  2. ROLE_ID VARCHAR2(20バイト)
  3. FUNCTION_ID VARCHAR2(40バイト)

P/S: 1 つのユーザー ワークグループが複数の役割 (作成者、管理者、承認者) を持つことができます。このワークグループで実行できる機能(追加、編集、削除)は、CONTENT_WORKGROUP_ROLE からクエリできます。

サンプルデータ:

CONTENT_WORKGROUP

CM_WORKGROUP_ID WORKGROUP_ID ROLE_ID
1 136 作成者
2 137 管理者
3 136 管理者

CONTENT_WORKGROUP_ROLE

CM_WORKGROUP_ROLE_ID ROLE_ID FUNCTION_ID

1 作成者 コピー
2 作成者 編集
3 作成者 削除
4 作成者 追加
5 管理者 編集
6 管理者 承認
7 管理者 拒否

ただし、特定のワークグループが保持する ContentWorkgroupRole の SET を取得すると、エラーが発生します。

[11/23/10 15:28:56:053 SGT] 00000039 SystemOut O [23/11/2010 15:28:56.053] エラー JDBCExceptionReporter - ORA-01722: 無効な番号

[11/23/10 15:28:56:100 SGT] 00000039 ServletWrappe E SRVE0068E: サーブレットのサービス メソッドの 1 つでキャッチされない例外がスローされました: アクション。スローされた例外: javax.servlet.ServletException: コレクションを初期化できませんでした: [corp.celcom.next.infochannel.model.ContentWorkgroup.contentWorkgroupRole#1]

以下は、私の休止状態のマッピング ファイルです: ContentWorkgroup.hbm.xml

CM_WORKGROUP CM_WORKGROUP_ID

ContentWorkgroupRole.hbm.xml

CM_WORKGROUP_ROLE_ID CM_WORKGROUP_ROLE

私の ACTION クラスでは、上記のエラーが次の行で発生しました: Iterator iter = cw.getContentWorkgroupRole().iterator();

for(ContentWorkgroup cw : contentWorkgroupList) { Iterator iter = cw.getContentWorkgroupRole().iterator();

myForm.setAllowAdd(true); if (role.getFunctionId().equalsIgnoreCase(Constant.EDIT)) myForm.setAllowEdit(true); if (role.getFunctionId().equalsIgnoreCase(Constant.DELETE)) myForm.setAllowDelete(true); } }

奇妙な部分は、文字列を使用する代わりに、ROLE_ID を Integer/Long (つまり、1-Creator、2-Administrator) に変更すると、正常に動作することです! コードの問題の理由と内容を理解できませんでした。

助けてくれてありがとう。このエラーに対処するのに、すでに 1 日かかりました。ありがとう!

0 投票する
2 に答える
1591 参照

java - @AnyアノテーションをサポートせずにHibernate3.5または3.6?

現在、システムの移行に取り組んでいます(JPA1を使用したhibernate3.2.2.GAからJPA2を使用したhibernate3.6へ。移行自体は非常に単純で、大きな更新はありません(実際、まったく)。

私が直面している問題は、休止状態が実行時に例外をスローし、@Anyアノテーションについて不平を言うことです。スタックトレースは次のとおりです。

つまり、@Anyまたは@ManyToAnyはhibernateでサポートされなくなったことを意味します。ドキュメント(3.3から3.6)には@Anyアノテーションの使用方法が記載されており、AFAIKにはこのアノテーションを評価する休止バージョンがないため、これは奇妙なことです。

hibernate 3.5ソースコードをチェックしましたが、@ Anyアノテーションチェックもあるので、同じ例外がスローされます。

この問題の回避策はありますか?

どうもありがとう!

0 投票する
1 に答える
1530 参照

java - Hibernate - テーブル用の派生 Java クラス

自分で作成する代わりに、Netbeans でマッピング ファイルと POJO を生成しました。継承クラスの代わりに派生クラスを使用することは可能ですか? 例は次のようになります。

したがって、新しいオブジェクトを作成すると:

次のようなメソッドを呼び出すことができますか?

session.save(personextended) or session.delete(personextended)

?

このシナリオは賢明ですか、それとも生成されたクラスに必要なコードを追加する必要がありますか? 助けや提案を前もってありがとう。

- - - -編集 - - - -

私のデータベースには、継承としてマップできる典型的な構造がありません。追加のメソッドをエンティティのメインの Java クラスから分離したいだけです。

よろしく、サス。

0 投票する
4 に答える
54076 参照

java - PostgreSQLシーケンスのHibernateの使用は、シーケンステーブルに影響しません

次のように、PostgreSQLシーケンスを(注釈を介して)使用して主キーID列の値を生成するようにHibernateを構成しました。

この構成で私が見ているのは、hibernateが永続化時にすでに3000を超えるID値を割り当てているのに対し、使用されているシーケンスのクエリは次のことを示しています。

(1行)

質問:
何か問題がありますか?
休止状態はシーケンステーブルと同期する必要がありますか?
そうでない場合は、最後に生成されたIDをどこに保存しますか?

ありがとうございました。

0 投票する
2 に答える
1140 参照

hibernate - Hibernate Tools:基本クラスを生成する方法は?

最近、Eclipse Helios と Hibernate Tools 3.4.0.Beta1 をインストールしました。

マッピング ファイルから「基本クラス」を生成しようとしていますが、その方法がわかりません。Individual.hbm.xml というマッピング ファイルがあるとします。Hibernate Tools に 2 つの POJO を生成させたい: - コンストラクターとゲッター/セッターを含む BaseIndividual.java - POJO を再生成するたびに削除されない「カスタム」コードを追加できる Individual.java

情報を探すのに多くの時間を費やしましたが、実用的な答えは見つかりませんでした。誰かが助けてくれるなら...よろしくお願いします

0 投票する
5 に答える
30967 参照

java - Java Hibernateマッピング例外!(次のタイプを判別できませんでした:java.util.Map)

私は次のフィールドを持つMovieという名前のクラスを作成しました:

ご覧のとおり、私は休止状態のアノテーションを使用しており、オブジェクトはBeanです。しかし、次のコードで休止状態のセッションを開こうとすると...

Java.Util.Mapクラスをマップできないという問題が発生しました。例外スタックトレースは次のとおりです。

私は冬眠するのが初めてで、何が起こっているのか正確にはわかりません...助けてください!

0 投票する
2 に答える
912 参照

hibernate - 従来のデータベース構造 Hibernate マッピングの問題

次のデータベース構造のマッピングに問題があります (簡潔にするために、PK/FK といくつかの余分な列だけで短縮されています:

ポリシー

Policy_Id (PK) ...

危険

Risk_Id (PK) ...

パーティ

Party_Id (PK) ...

パーティーの役割

  • PartyRole_Id (PK)
  • Party_Id (FK not-null)
  • Policy_Id (外部キー)
  • Risk_Id (外部キー)
  • Party_Role_Type

したがって、PartyRole テーブルには、パーティをポリシーにリンクする行や、同じパーティをリスクにリンクする行を含めることができます。基本的に、これは多対多の結合テーブルですが、多対多の関係 (Party<->Policy と Party<->Risk の 1 つ) の両方を組み合わせています。Party_Role_Type は POLICY または PARTY のいずれかであり、行が属する関係を識別するための識別子として効果的に機能します。

この構造を、ポリシー、パーティ、リスク、パーティロールの 4 つのエンティティでモデル化しようとしました。マッピングは次のとおりです。 コード:

すべての Java pojo はこのマッピングに一致するように設定され、オブジェクトがコレクションで追加または削除されると、すべての関連付けが正しく設定されます。ポリシーは集約ルートと見なされるため、Hibernate によって保存されるときに、ポリシーに関連付けられたパーティを保存したいと考えています。ポリシーとリスク (および関連するすべての役割) に関係者を追加すると、次の例外が発生します。

原因: java.sql.BatchUpdateException: 整合性制約違反: 外部キーに親がありません。FK_PARTY_ROLE_POLICY テーブル: PARTY_ROLE

なにが問題ですか?また、これはこの関係をマッピングする最良の方法ですか? 中間エンティティを使用せずに、この関係を何らかの形でマッピングする機会はありますか? 助けてくれてありがとう。

0 投票する
1 に答える
2566 参照

java - Hibernateマッピング用のカスタムクラスローダー

.hbm.xmlファイルで示されたクラスをインスタンス化するためにHibernateが行う呼び出しをインターセプトする方法を知っている人はいますか?カスタムClassLoaderを使用してインスタンスを提供する方法が必要です。一般にHibernateのクラスの読み込みを変更したくはありません。マップされた「POJO」クラスのインスタンス化だけです。

上記のサンプルコードでは、HibernateがBarをインスタンス化する場合、デフォルトのクラス読み込み動作に依存するのではなく、そのクラスにカスタムコードを提供する必要があります。

洞察を事前に感謝します、
saethi

0 投票する
2 に答える
8280 参照

java - @Where句を使用して@OneToOneマッピングを休止状態にする

これは機能しますか-

これは私がやろうとしていることです-現在のオブジェクトのであり、であるnoteテーブルからtype_idレコードを取得します。idtype_nameOBJECTIVE

上記のマッピングを機能させることができません。私はここで何が間違っているのですか?