問題タブ [mappedsuperclass]
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.
spring-data-jpa - MapperSuperClassを使用してSpring Data JPAでデータベース継承を実装するには?
この記事JOINED
を参考にSpring Data JPAで型のデータベース継承を試しています。これはうまくいきました。しかし、私は自分のプロジェクトに実装する必要があります。私は次の方法で実装しました:MappedSuperClass
Base.java
BaseImpl.java
Super1.java
Super1Impl.java
BaseBaseRepository.java
BaseRepository.java
BaseRepositoryImpl.java
Super1Repository.java
Super1RepositoryImpl.java
Super1
テストケースにオブジェクトを保存しようとしています:
しかし、次のエラーが発生します。
で試してみまし@PrimaryKeyJoinColumn(name = "id", referencedColumnName = "id")
たがSuper1Impl
、それでも同じエラーが発生します。
inheritance - Doctrine ODM - MappedSuperclass のコレクション名を指定する
Doctrine ODM には、コレクションに使用する名前を指定するための注釈 (コレクション) があります。デフォルトはクラス名ですが、簡単に変更できます。
ただし、他のクラスによって拡張されるスーパークラスをマップしました。継承タイプは単一のコレクションであり、このコレクションは基本抽象クラスにちなんで名付けられています。この名前を変更するにはどうすればよいですか?
拡張されるクラス Base があるとしましょう。しかし、コレクションにはItemsという名前を付けたいです。すべての拡張クラスで注釈を変更したくないのは明らかです。これは非常に冗長でエラーが発生しやすいためです。
jpa - JPA: @MappedSuperclass と継承された ID を持つサブクラス間に ManyToMany 関係を構築する方法
スーパークラスから id (データベース id) フィールドと他の 2 つの変数を継承するアプリのサブクラス エンティティ間の ManyToMany Relationship を構築する際に問題に直面しています。@MappedSuperclass
データベース テーブルのサブクラスのみをマッピングするために使用されます。サブクラスごとに 1 つのテーブルですEntity
。最後に、前述の ManyToMany Relationship に基づいて構築された Joined Table を作成したいと思います。
JoinTable
注釈の定義がわかりません@AttributeOverride
。各サブクラスで、継承された ID をオーバーライドするために使用しようとしました。
ご案内いただけますか?
Person
スーパークラス:
Teacher
サブクラス:
学生サブクラス:
java - org.hibernate.hql.internal.ast.QuerySyntaxException: BaseModel がマップされていません
レコードが「ACTIVE」、「DELETED」、または「IN_PROGRESS」であるかどうかを記録するベース モデルの状態を追加しようとしています。
これが私のコードです:
しかし、プロジェクトを開始しようとすると、Spring Boot は常にこのエラーをスローします。
「BaseModel がマップされていません [BaseModel o から o を選択します。ここで o.state = 'ACTIVE']」
どこが間違っていたのか、誰かアドバイスをください。私がオンラインで読んだことから、@MappedSuperClass はこの問題に直面するべきではありません。インスタンス化されていないためです。
どんな助けでも大歓迎です。
ここに私の完全なスタックトレースがあります: