問題タブ [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.
java - Hibernate は多対 1 で注釈を付け、親コレクションに子を追加しません
次の注釈付き Hibernate エンティティ クラスがあります。
ここでの私の意図は、Cat と Kitten の間の双方向の 1 対多/多対 1 の関係であり、Kitten が「所有側」になります。
私がやりたいことは、新しい Cat を作成し、続いてその Cat を参照する新しい Kitten を作成したときに、私の Cat の子猫のセットに新しい Kitten が含まれている必要があることです。ただし、これは次のテストでは発生しません。
Cat を再クエリした後でも、Set はまだ空です。
ここで Hibernate に期待しすぎていますか? それとも、コレクションを自分で管理するのは自分の負担ですか? (注釈)ドキュメントには、親オブジェクトに便利なaddTo*
/メソッドを作成する必要があることは示されていません。removeFrom*
この関係でHibernateに期待することについて誰か教えてもらえますか? または、他に何もない場合は、ここで何が起こると予想すべきかを教えてくれる正しい Hibernate ドキュメントを教えてください。
親コレクションに子エンティティが自動的に含まれるようにするにはどうすればよいですか?
hibernate - 抽象クラスまたはインターフェースをインスタンス化できません: 永続化中の問題
AdGroupInterfaces のリストを維持するクラス キャンペーンがあります。私はその実装を維持するつもりです
}
AdGroupInterface の実装は AdGroups です。キャンペーンのリストに広告グループを追加すると、
キャンペーン c; c.getAdGroupList().add(new AdGroups()) などでキャンペーンを保存
「抽象クラスまたはインターフェイスをインスタンス化できません:」と表示されます AdGroupInterface
永続化する直前に実装を認識していません...
一方、永続的な adGroups は個別に機能します。別のエンティティのメンバーである場合、永続化されません。
}
私は何が欠けていますか?? 調べてください...
java - 減速に注釈を追加できますか
getterメソッドの代わりに減速に注釈を追加できますか?
私はこれに慣れています
このように使えますか
皆さんありがとう。
ラヴィ
java - 別のプロジェクトの hibernate アノテーション付きマッピングに依存するにはどうすればよいですか?
いくつかのエンティティを共有する 2 つの異なるプロジェクトのマッピングを行う方法を考え出そうとしています。これらはマッピングの限られたサブセットのみを共有するため、私の最初のアイデアは、これらのマッピングを別の jar に分離することでした。マッピングを行うために hibernate アノテーションを使用しています (したがって、それらは個別の XML ではなく、クラス ファイル内にあります)。
プロジェクト A とプロジェクト B の両方が、このマッピング プロジェクトに依存しています。このプロジェクトには、休止状態のマッピングが 2 つしか含まれていません。プロジェクト A には独自のマッピングはありませんが、プロジェクト B にはマッピングがあります。マッピング プロジェクトの永続化ユニットを構成しないと、マッピングが取得されないため、これを行うと常に問題が発生するようです。プロジェクト B についても同様です。マッピング プロジェクトで永続化ユニットを構成すると、プロジェクト A は機能しますが、プロジェクト B でクエリを実行すると、次のようになります (Mapping
たまたまクラスの名前になります)。
これは、プロジェクト B が独自の永続化ユニットを持っていることが原因であると考えており、明らかに 2 つがマージされていません。私は本当にそれらのいずれかを望んでいません。プロジェクト A/B で 1 つだけを構成し、依存する jar では構成したくないのです。依存関係の jar 内の注釈をスキャンしてマップし、それらを現在の永続化ユニットに追加するように hibernate に指示する方法はありますか?
java - Hibernate @Index アノテーションを使用して DB にインデックスを作成する
プロジェクトに注釈駆動の休止状態機能があります。
今、列にインデックスを作成したいと思います。私の現在の列の定義は
@Index
ここに注釈を追加します。
次に、DROP TABLE を実行し、Tomcat サーバーを再起動します。サーバーがインスタンス化された後、テーブルが作成されますが、次のクエリで新しいインデックスが表示されません。
新しいインデックスでテーブルを構築することが期待されています。MySQL で InnoDB を使用しています。
java - JavaのIncompatibleClassChangeError例外とは何ですか?
私は小さなアプリケーションに取り組んでおり、Hibernate Annotations を使用してエンティティをマップしようとしています。この例外が発生したときにすべてが問題ないかどうかをテストしたかった:
誰かがこの例外とは何か説明できますか? これは私がそれを見るのは初めてです。これが私のアプリケーションのメインです:
私の休止状態の設定は非常に単純です:
これが私が使用している休止状態のmaven依存関係です:
誰かが私を助けてくれますか??
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つのIDに複数の行を含めることができます(明らかに、主キーではありません)。例として、次のようになります。
すべてのIDには、いくつかの異なるカテゴリがあります。プロパティ名は、特定の(id、category)の組み合わせに対して一意です。
(編集)IDフィールドは、別のテーブル内のオブジェクトへの外部キーです。IDフィールドのみを使用して、これらのオブジェクトからこのテーブルに格納されているさまざまなプロパティにアクセスできる必要があります。複合キーが進むべき道である場合、どうすればそれらをリンクできますか?
(EDIT2)また、ここで欠落している詳細は、列1の同じIDを持つすべてのデータが概念的に同じオブジェクトに属していることだと思います。(ID、CATEGORY)の組み合わせごとに個別のインスタンスは必要ありません。
明らかに、これはあまり正規化されていません。最悪のシナリオでは、正規化されてすべてをコピーする追加のテーブルをいくつか設定しましたが、この情報を休止状態のバックアップオブジェクトに直接取得するための賢明な方法を誰かが提案できるかどうか疑問に思いました。必要に応じて、Stringプロパティのある種のバッグに入れます。
ところで、hibernate-annotationsを使用しています。
java - Hibernate が例外 "java.lang.NoSuchMethodError: javax.persistence.UniqueConstraint.name()" をスローするのはなぜですか?
UniqueConstraint
次の Hibernate マッピング宣言の注釈によって例外が発生するのはなぜですかjava.lang.NoSuchMethodError: javax.persistence.UniqueConstraint.name()
(スタック トレースについては以下を参照)。注釈を削除するとUniqueConstraint
、Hibernate は例外をスローせず、Spring はアプリケーション コンテキストを正常に作成することに注意してください。
ソースコード:
例外スタック トレース:
ソフトウェア構成:
- Hibernate 3.5.5-ファイナル
- 春 3.0.4.RELEASE
- WebLogic Server 10.3.2
関連する Maven 2 の依存関係pom.xml
:
休止状態の依存関係:
春の依存関係:
hibernate - デフォルトの列値を注釈付きでマップします
値を設定しない場合、値「15-JUL-1980」が各行に挿入されることを期待しています。
しかし、期待どおりに機能していません。私はここで何か間違ったことをしていますか?
いくつかの理由で、データベースではなくアプリケーションでデフォルト値を設定したいと思います。
更新:
最初は、「挿入可能=false」のみを使用せずに試しました。
初心者として、私はさまざまなオプションを試していて、そのオプションを維持していました。
これが私が実行しているテストケースです:
そしてそれが生成した出力:
テーブル: