問題タブ [hibernate-annotations]

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 投票する
1 に答える
104 参照

hibernate - プライマリテーブルのプライマリキーを従属テーブルの外部キーフィールドに繰り越す必要があります

私には2つのエンティティがあります。顧客と住所は以下のコードを見つけてください。簡単にするためにボイラープレートコードを省略しています。

アドレスクラスは:

顧客IDをアドレステーブルの外部キーとして保持する必要があります。

0 投票する
0 に答える
1552 参照

hibernate - Hibernate - 追加の列を持つ結合テーブルを介して自分自身を参照するエンティティ

Part という注釈付きのエンティティがあります。「id」とその他のいくつかの変数で構成されます。「bomdefinitions」という別のテーブルがあります。このテーブルには 3 つの列 (数量、親、ターゲット) があります (ターゲットがばかげた名前であることは理解していますが、データベースが既に存在するため変更できません)。アイデアは、パーツは他の多くのパーツで構成でき、他の多くのパーツでも使用できるというものです。テーブル「bomdefinitions」には、どの親がそれに関連付けられている「ターゲット」があり、何個が使用されているかが示されています。

問題は、Part.java の OneToMany リレーションシップの 1 つをコメントアウトし、もう 1 つを残すと問題なく動作しますが、コードに両方がある場合、どちらかにアクセスしようとすると、Hibernate クエリの無限ループが発生することです。 .

エンティティをそれ自体にマッピングする例、追加の列を持つ結合テーブルを使用してエンティティをマッピングする例、および注釈を行うさまざまな方法の例を見つけることができますが、単一のアプリケーション内でそれらすべてを行うものは何もありません。ここでは役に立たないようです。

Hibernate の経験が豊富な人は、私が間違っていることについて何か考えがありますか?

編集(このコードは無限ループを引き起こします):

出力のクエリは次のとおりです。次で始まります。

次に、次の 2 つのクエリが無期限に繰り返されます。

BomDefinition.java (「Java Persistence with Hibernate」からほぼ抜粋)

Part.java:

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

hibernate - Hibernate Annotations の混乱における複合キー

「A」と「B」という 2 つのテーブルがあります。3 番目のテーブル「C」には、「A」と「B」を直接参照する 2 つの列があります。つまり、「C」には、A の ID と B の ID をそれぞれ参照する「A_id」と「B_id」が含まれています。「A_id」と「B_id」に一意のキーが定義されています。しかし、「C」には id 列がありません。「C」のスキーマを変更せずに、「C」のモデル クラスを定義するにはどうすればよいですか。Hibernate アノテーションを使用するのは初めてなので、助けてください。'A' と 'B' には他の列もあり、それらのモデル クラスは既に定義されています。

0 投票する
3 に答える
22052 参照

hibernate - Hibernate が NULL 値を更新しないようにするにはどうすればよいですか

休止状態のオブジェクトを保存するときに、プロパティのnull 値を無視する設定が休止状態にありますか?


私の場合、JSON を Jackson 経由で Hibernate Pojo にデシリアライズしています。

JSON には、Pojo の一部のフィールドのみが含まれています。Pojo を保存すると、JSON に含まれていなかったフィールドは Pojo で null になり、休止状態で更新されます。

設定に出くわしましたupdateable=falseが、これは 100% の解決策ではありません。 http://docs.jboss.org/hibernate/stable/annotations/reference/en/html_single/#entity-mapping-property

多分誰かが別の考えを持っている...

注 2:

Hibernate Docs によると、dynamicUpdate 注釈はまさにそれを行います

dynamicInsert / dynamicUpdate (デフォルトは false):
INSERT / UPDATE SQL が実行時に生成され、値が null でない列のみが含まれるように指定します。

http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html_single/#mapping-declaration-class

dynamic-updatedocu を介して XML で定義した場合、NULL 値の処理については言及しないでください。

dynamic-update (オプション - デフォルトは false):
UPDATE SQL を実行時に生成し、値が変更された列のみを含めることができるように指定します。

注釈とxml 構成の両方を使用しているため、休止状態は注釈を無視しているようdynamicUpdate=trueです。

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

hibernate - DAOアノテーションで定義されたNamedQueryがHibernateセッションファクトリで見つかりません

私はHibernateと一緒にSpringを使用しています。私のDAOでは、セッションファクトリで検出されないNamedQueryを定義しましたが、そのDAOのパッケージをpackagesToScanに追加しました。

私のDAO:

そして、ここでセッションファクトリを提供するためのSpringconfigメソッド:

そしてここでスローされる例外:

同様のスタックオーバーフローの質問があるため、休止状態の@NamedQueryアノテーションを同等のJPAに置き換えました。助けにはならなかった。

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

hibernate - Hibernate でアノテーション構成の代わりに何を使用しますか?

以前は使用AnnotationConfigurationしていましたが、現在は廃止されています

そのため、instedを使用することをお勧めしますConfigurationが、それでもいくつかのエラーが発生します: 構成.

セッションファクトリを今どのように構築するのですか?

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

java - @IdClassまたは@EmbeddedIdのない複合PKのみで構成されるクラスのマッピング

私は2つのテーブルAB単純なPKを持っています。

Aとの間の関係を単純に格納する新しいアソシエーションクラスABをB、複合PK idA+でマップしたいと思いidBます。とABの間の関係だけで、余分な列はありません。idAidB

AB単一のクラスを使用してマッピングすることは可能ですか?として、またはで使用するためだけに新しいABIdクラスを作成する必要はありません。また、またはで関連付けを使用してこれをマップしたくありません。@IdClass@EmbeddedIdAB@ManyToManyAB

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

hibernate - Hibernate のトランザクションでの存在チェック

春のフォーラムにこのメッセージを投稿した男性と同様の問題があります: http://forum.springsource.org/archive/index.php/t-20943.html

基本的に、私は自分が取り組んでいる Web サイトの自動登録機能を書いています。ユーザーの移行元であるサードパーティのデータベースにユーザーが存在し、DB には存在しない場合、ログイン プロセスにより、DB にユーザーが自動的に作成されます。

これを行うには、最初に、ログイン時に電子メールとパスワードを使用してユーザーを認証する必要があります。それが失敗した場合は、サードパーティの DB を確認し、この情報を使用してユーザーを作成しようとします。上記のリンクのように、この存在チェックとそれに続く挿入により、Hibernate によってメソッドがロールバックのみとしてマークされるようです。

存在チェックで Transactional Requires_New を使用して新しいトランザクションに強制しようとしましたが、このトランザクションが親トランザクションではなくロールバックのみとしてマークされることを望んでいましたが、これは機能しませんでした。

誰でもこれを行う方法についてアドバイスできますか? 上記のリンクは、ユーザーが既に存在することを確認するために重複キー エラーを挿入して使用することを提案していますが、これは面倒なようで、大幅な再設計が必要になります。

ところで、Hibernate、Spring、Annotations を使用してトランザクションを処理しています。

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

java - Hibernate Annotation の結合の問題

spring3 mvc で hibernate 3 アノテーションを使用して、2 つのテーブルで単純な結合操作を実装しようとしています。

私は2つのテーブルを持っています:

従業員

給料

2 つの注釈付きモーダル クラスを作成しました。

従業員.java

Salary.java

ページを開くと、次のエラーが発生しました

私のモーダルクラスに何か問題があります

ヘルプは大歓迎です、ありがとう、VKS

0 投票する
0 に答える
940 参照

java - @AttributeOverride は誤ったオーバーライドを無視します。これは JPA または Hibernate 標準ですか?

MYENTITYID_AID_B、および@Embeddableエンティティを持つテーブルがある場合、次のことに気付きました。

そして、私はそれを次のように使用します@Entity:

inexistingProp誤ったマッピング例外をスローする代わりに、オーバーライドは無視されます。これはどこにも文書化されていませんが、これは JPA の動作ですか? この問題に関する公式文書はありますか?


@Embeddableまた、 に既に正しいマッピング ( "id_a") があり、 をからに変更する@Columnと、次のエラーが発生することに気付きました。@AttributeOverrideid_afoo_bar_baz

org.hibernate.MappingException: Unable to find column with logical name: ID_A in org.hibernate.mapping.Table(MY_SCHEMA.MYENTITY) and its related supertables and secondary tables

FOO_BAR_BAZではなく、列が存在しないというエラーが表示されると思いますID_Aなぜそれは不平を言っているのID_Aですか?

更新MYENTITY: with@ManyToOneに関連する他のエンティティがあり、 でid_a明示されているため、このエラーが発生していることが判明しました@JoinColumns