問題タブ [hibernate-onetomany]
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 - データベースにNULLを追加する
私は冬眠するのが初めてです。
UserDetails と Address の 2 つのクラスがあります。これら 2 つの関係は One-To-Many です。詳細は次のとおりです (getter と setter をスキップ)
UserDetails.java
アドレス.java
App.java
hibernate.cfg.xml プロパティ name="hbm2ddl.auto" で update に設定されています 上記のコードを実行した後、データベースのエントリは
UserDetails テーブル
アドレス テーブル
私の質問は、休止状態が、新しいテーブルを作成する代わりに、アドレス テーブルの UserDetails Address=NULL および City=NULL に挿入する理由です。
hibernate - なぜ休止状態で関連付けを使用するのですか?
私は多くのグーグルを行ってきましたが、なぜ休止状態で関連付けを使用する必要があるのか わかりませんか? 私は、一対多やその他の関連付けについて言及することなく、なんとか物事を行うことができます。休止状態の結合を明示的に使用しなくても、何らかの結合条件を使用してテーブルでデカルト積をいつでも実行できます。それらを使用しないと、何が恋しくなりますか? メリット、デメリットがあれば教えてください。ありがとうございました。
spring - OneToMany Create が InvalidDataAccessApiUsageException で失敗する
私は Hibernate を初めて使用し、マニュアルとオンライン フォーラムを使用してきましたが、この問題に困惑しています。Spring 3.2 と Hibernate 4 および Annotations を使用しています。1対多の親(PledgeForm)と子(PledgeFormGiftLevel)テーブルがあります。
ドメイン/モデル: 親
子
コントローラー (グラフィックがあるので、ファイルを取り込むコードがあります):
サービス:
ダオ:
上記のコードを使用すると、親/子レコードを選択して更新できます。ただし、休止状態からの「トレース」メッセージを表示すると、更新には子に関する次のトレース メッセージがあります。
子レコードがある場合、作成は常に次のエラーを返します。
休止状態のログを見ると、一時オブジェクトに基づいて親と子が更新されていることがわかります。次に、子の永続的なコピーをフラッシュして見つけようとするため、すべてをロールバックします。
Hibernate のドキュメントは、これが私のコードよりもさらに単純であることを示していますが、フェッチとカスケードの値を追加する必要がありました。フェッチとカスケードの値と配置を変更して遊んだことがありますが (Hibernate のドキュメントから始めて追加します)、他のすべてを試しても作成が失敗し、更新も失敗することがよくあります。
私が見つけた多くのフォーラム投稿は、flush() または evict() を示しています。私が使用しているのが Hibernate 4 なのか注釈 (@Transactional だと思います) なのかは定かではありませんが、私のコードにはその場所がありません。Hibernate トレース ログから、saveOrUpdate() メソッドでフラッシュが自動的に行われていることがわかります。
また、テーブルとシーケンスを削除して、最初からやり直してみました。
作成を機能させるためのアドバイスは大歓迎です。私が見逃した特定のドキュメントを教えていただければ、それもありがたいです。
ありがとう、ボニー
java - saveorupdate() は、休止状態でコレクション (リスト) の 1 対多のマッピングを更新しません
クラスStudent
クラスPhone
-> マッピングファイルStudent.hbm.xml
-> マッピング ファイル Phone.hbm.xml
電話番号 (リスト) を更新しようとすると、前のエントリは削除されませんが、idx (リスト インデックス) と外部キーは null であり、新しいエントリは正しい idx と外部キーでマークされます!!データ(リストではない)は完全に正常に更新されます。ここで、データベースからクラス オブジェクトを取得し、それを変更してオブジェクトを に渡しましたがsaveorupdate()
、役に立ちませんでした。これをずっと試してきました。
読み取りおよび更新するコード:
sql-server - DB ユニット TypeCastException
単純なアプリケーションの単体テストをセットアップしようとしていますが、テスト データをセットアップすると、常に TypeCast エラーが発生します。
ここに必要な情報:
1) データベーススキーマ:
2) テーブルに対応する Java オブジェクト:
3) データセット xml ファイル
4) 実行しようとしているテスト:
5) 私が得ているエラー:
私が間違っていることについて何か考えはありますか?
どうもありがとう!!!
java - Hibernate の OneToMany 関係
休止状態の OneToMany 関係に問題がありました。なんらかの理由で、休止状態でリレーションを正しい方法で保存する際に問題が発生します。以下に 2 つのクラスを示します。
セカンドクラス:
この問題は、Project と Workingpackage の間の OnetoMany 関係でのみ発生します。何らかの理由で、hibernate がオブジェクトをデータベースに正しく保存していません。projectID が workingpackage テーブルにないため、リンクがありません。
編集:以前はゲッターとセッターがありましたが、クラス全体を投稿しました...
EDIT2:
セカンドクラス:
私のために働く....
java - 休止状態での双方向マッピング
quote と quote_item という 2 つのテーブルがあります。それらには1対多の関係があります。私の要件はquotation.setQuotationItem(set)
、引用にマップされた古い quoteItem を削除し、セット内の quoteItems を引用にマップする必要がある場合です。
/ * ** 私の引用 pojo は* ** * /
/ * ** QuotationItem POJO * *** /
/ * * Quotation.hbm * ** * **** /
/ ** QuotationItem.hbm * ** * ** /
私のテーブル構造は引用のようなものです
quotation_id
code
client_name
Quotation_item のテーブル構造
id
quotation_id
item_name
rate
qty