問題タブ [embeddable]
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 - 埋め込み可能および ElementCollection のネスト
メインの @Entity があり、その中のすべてが埋め込み可能であるというかなり典型的なシナリオがあります (したがって、内部のすべては親なしでは意味がありません)。現在、JPA 2.0 は、別の @ElementCollection で定義された @Embeddable 内に @ElementCollection をネストすることをブロックしています。
JSR-317 2.6 埋め込み可能なクラスと基本型のコレクション 要素のコレクションに含まれる埋め込み可能なクラス (別の埋め込み可能なクラス内の埋め込み可能なクラスを含む) は、要素のコレクションを含んではならず、エンティティ以外のエンティティとの関係を含んではなりません。多対 1 または 1 対 1 の関係
ここで問題は次のとおりです。これはなぜですか。簡単な例:
これを持っている問題は何ですか?これは単なる例です。Round と Edition を Entity として定義して問題を解決できますが、私の場合、いくつかの理由から、非常にネストされたものは親なしでは意味をなさないことを強制する必要があります。
なぜJPA 2.0がこれを止めなければならないのですか?
java - @Embeddable クラスの JPA @Version
@Embeddable で JPA @Version アノテーションを使用すると、Updateable
クラスを指す次の例外が発生します。
これが私のコードです:
@Embeddable に @Version を含めることはできませんか、それとも Hibernate 固有のものですか?
java - トランザクションのロールバック中に @ElementCollection をデータベースに永続化する
トランザクションのロールバックにもかかわらず、組み込み可能なオブジェクトのリストがデータベースに保持される理由がわかりません。
埋め込み可能なロールのリストを持つエンティティ ユーザーがいます。
データベースに既に存在するのと同じユーザー名でユーザーを永続化すると、例外が表示されます:「RollbackException: コミットできません: ロールバック用にマークされたトランザクション」、これは一意のユーザー名列があるため完全に問題ありません。しかし、ロールバックにもかかわらず、そのユーザーのロールのリストがデータベースに保持される理由がわかりません。
トランザクションがエンティティクラスに対してのみ機能し、埋め込まれたロールのリストをデータベースに永続化する必要がある場合でも (ロールバックのために) 永続化するようです。
私は何を間違っていますか?ヒントをありがとう(私はOpenJPA 2.3.0を使用しています)
ユーザーコード:
役割コード:
jsf - Embeddable で列挙型を使用するには?
attributeを@Embeddable
含むクラスがあります@Enumerated
。@Enumerated
selectOneMenu primefacesでこの属性の値を表示したいと考えています。問題は、自分のページを表示しようとする@Enumerated
と null の例外が返されることです。この問題を解決する方法がわかりません。
列挙された
埋め込み可能
エンティティ ドメイン
マネージド Bean
Xhtml
例外
java - Hibernate @Embeddable static final
私は奇妙な振る舞いをしています。@Embeddables を使用して型情報 (TerminalType) を格納するエンティティがあります。この型は固定値のみを持つ必要があります。したがって、CLIENT、BROWSER、EXTRENAL などの定数を作成しました。
このクラスはエンティティ端末で使用されます
問題は、定数の値が時々変化することです。アプリケーションは何時間も実行できますが、しばらくすると定数 CLIENT の値が "BROWSER" になります。
何が/誰が定数を変更するのかわかりませんか? どんなアイデアでも役に立ちます!ありがとう!