問題タブ [hibernate-cascade]
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.
hibernate - JPAカスケードなしが機能しない
シナリオ:
- A がビューでアクセスされるたびに、A の状態が変更されます。
- A には多くのユーザーがアクセスできます。
- A にアクセスするとすぐに、A を開くユーザーごとに B のインスタンスが作成されるか (存在しない場合)、更新されます。
- B は常に A の状態が変更されたインスタンスを参照します。
- クラス B (クラス A の場合) の ManyToOne マッピングでカスケード型について言及していないので、デフォルトはカスケードなしであると仮定します。
しかし、ビューで A を開くたびに、B が永続化すると、状態が変更された A も永続化されます。Bを永続化するときにAを永続化したくありません。どうすればそれを達成できますか?
Java 1.8、休止状態 4.3.7、ワイルドフライ 8.2
一般的な保存方法:
持続性 xml :
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="bla_bla" transaction-type="JTA">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<jta-data-source>jdbc/bla</jta-data-source>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<property name="hibernate.enable_lazy_load_no_trans" value="true"/>
<property name="hibernate.show_sql" value="false"/>
<property name="hibernate.event.merge.entity_copy_observer" value="log"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.SQLServer2008Dialect"/>
<property name="hibernate.transaction.jta.platform" value="org.hibernate.engine.transaction.jta.platform.internal.JBossAppServerJtaPlatform"/>
<!-- enabling L2 cache -->
<property name="hibernate.cache.region.factory_class" value="org.hibernate.cache.ehcache.EhCacheRegionFactory"/>
<property name="hibernate.generate_statistics" value ="false" />
<property name="hibernate.cache.use_second_level_cache" value="true"/>
<property name="hibernate.cache.use_query_cache" value="false"/>
<property name="jadira.usertype.databaseZone" value="UTC"/>
<property name="jadira.usertype.javaZone" value="UTC"/>
<property name="jadira.usertype.autoRegisterUserTypes" value="true"/>
</properties>
</persistence-unit>
</persistence>
hibernate - Hibernate が子の参照を親に設定しないのはなぜですか?
クラスの親を検討してください:
そしてクラス子:
アプリケーション内で新しい子を作成し、それを Parent のchildrenフィールド内に配置してから、Parent オブジェクトを永続化すると、Hibernate が ( parentID列を設定するために) Child の親フィールドを自動的に更新しないのはなぜですか?物体?
hibernate - 削除時の Hibernate ConstraintViolationException
ジオフェンスとデバイスの 2 つのエンティティがあります。ユーザーが 1 つのジオフェンスをデバイスに割り当てると、GeofenceDevice エンティティによって表される関連付けが作成されます。
問題は、GeofenceDevice オブジェクトを削除しようとすると、エラーが発生することです。
これが私のコードです:
デバイス エンティティ
ジェフェンスエンティティ
GeofenceDevice エンティティ
そして、ここにログへのリンクがあります
java - Hibernate: 親を更新するときに子を更新する
別のオブジェクトのコレクションを含むオブジェクトを更新するときに、Hibernate で問題が発生します。外観は次のとおりです。
次に、Car クラスがあります。
ガレージには次のサービスがあります。
ここで、データベースに白、青、赤の車があるガレージがあるとします。
同じガレージで青と赤の車だけを指定して更新メソッドを呼び出すと、更新は成功します。データベースは白い車を Car テーブルから削除しました。
ただし、同じガレージで空の車のコレクションを指定して更新メソッドを呼び出すと、Car テーブルから車が削除されません。
私が間違っているかもしれないアイデアはありますか?
hibernate - エンティティ リストが Null の場合、エンティティ リストを持つエンティティを保存するにはどうすればよいですか
それは私の最初の質問です。ここで問題を解決するためのヒントが得られることを願っています。
アプリケーションに休止状態を使用します。これが私のコードです。
そして、Aを自動的に保存すると、bListを保存できると思っていました。できます。
しかし、 bList が nullの場合、大きな問題があります。 hibernate は、bList が null であっても、bList を A で保存しようとします。
したがって、このエラーが発生します。
ORA-01400: ("MYTEMPTB"."TB_B"."B_ID") に NULL を挿入できません
どうすれば解決できますか?? ヒントを教えてください。ありがとう。