問題タブ [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.
java - JPA @MappedSuperclass サブクラスの異なる Id カウンター
すべてのエンティティの基本クラスである @MappedSuperclass を取得しました (@Entity、複数のサブクラスによる直接または間接)。
Id は上記のように生成されます。
私の問題は、@Id-counter が各 @Entity で同じであることです。実際には、Long.MAX_VALUE に到達するまでに時間がかかるため、これは大きな問題ではありません。ただし、すべてのエンティティに対してカウンターが 1 つしかないため、最大値に到達するのははるかに簡単です。上記のコードをすべての @Entity-classes に追加することなく、別の @Id-counter を使用するにはどうすればよいですか?
(あなたの答えが重要な場合:私はH2データベースを使用しています。)
php - Zendフレームワーク2のMappedSuperclassを使用したDoctrine 2多対多
私はDoctrine2を初めて使用し、次のDB構造のエンティティを作成しようとしています:
マシン クラスの 1 つの属性に、すべてのマシン パーツを配列として配置したいと考えています。私はこれを試しました:
は中間エンティティ/テーブル (など) の場所MachineHasPart
ですが、次のエラーで失敗しました:@MappedSuperclass
machineHasCylinder
'SELECT FROM machineHasPart t0' の実行中に例外が発生しました。
ここで ORM を使用するには、データベースを再構築する必要がありますか? または、私の場合の解決策はありますか?
php - Doctrine :: 子エンティティから読み取ることはできません
BaseValue
マッピングされたスーパークラスとしてエンティティ があります。という 2 番目のエンティティが、Field
このスーパークラスをマッピングしています。
私はそれを保存することができ、子クラスの値はBaseValue
正しいテーブルに保存されます。
しかし、それらを読み取ろうとすると、次のエラーが発生しました。
'SELECT t0.id AS id_1, t0.iid AS iid_2, t0.lid AS lid_3, t5.fid AS fid_4 FROM fields t0 LEFT JOIN BaseValue t5 ON t5.fid = t0.id WHERE t0.iid = の実行中に例外が発生しました?' パラメータ付き [1]:
SQLSTATE [42S02]: ベース テーブルまたはビューが見つかりません: 1146 テーブル 'testproject.BaseValue' が存在しません
もちろん、値がないため、存在しません。これらはすべて、子エンティティのテーブルに格納されます。
派生エンティティ (マップされたスーパークラス):
チャイルドの 1 つ:
子の 1 つと関係があるエンティティ:
コントローラーは、次のように読み取ります。
そして、ここでクラッシュします:
日付:
/var/www/html/myproject/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php:53説明:
'SELECT t0.id AS id_1, t0.iid AS iid_2, t0.lid AS lid_3, t5.fid AS fid_4 FROM pimfields t0 LEFT JOIN BaseValue t5 ON t5.fid = t0.id WHERE t0 の実行中に例外が発生しました。 iid = ?' パラメータ付き [1]:SQLSTATE [42S02]: ベース テーブルまたはビューが見つかりません: 1146 テーブル 'myproject2.BaseValue' が存在しません
java - JPA/Hibernate @MappedSuperclass と @Inheritance(strategy = InheritanceType.JOINED) の関係
JPAモデルで表される3つのテーブルがあります。最初の1つ:
次のクラスは BaseEntity を拡張します。
最後は Person を拡張する Student です:
したがって、Person テーブルと Student テーブルの両方に「アクティブ」なフィールドがあります。PersonRepository を介してフィールド「アクティブ」を更新すると、Student テーブルの適切な行も更新されます。今のところ、Person テーブルのみを更新します。出来ますか?
hibernate - 複数の継承レベルを持つ @MappedSuperclass は、エンティティ例外のマッピングで繰り返し列をスローします
すべてのエンティティに共通のフィールドまたはマッピングを 1 か所に持つ親クラスを作成しました。
ただし、継承レベルが 1 を超える場合、休止状態は例外をスローします。
MappingException: Repeated column in mapping for entity
コードサンプルは、
誰かが私が間違っていることを指摘できますか?
java - Hibernate 継承マッピングの不明なプロパティ
具象クラスに共通のフィールドを含むマップされたスーパークラスがある継承構造に苦労しています。このスーパークラスには、「ラッパー」オブジェクトとの 1 対 1 のマッピングがあります。
オブジェクトは次のようになります。
簡単にするために、具体的なクラスを 1 つだけ含めましたが、いくつかあります。
このマッピングは、ラッパー オブジェクトに「ベース」への参照がない場合にうまく機能します。ラッパーとベースの間に双方向の関係を追加しようとするとすぐに、このエラーが発生し始めます....フィールドがあるので意味がありません。
私は何が欠けていますか?ありがとう、
java - Hibernate - SuperClass -MappedSuperClass
休止状態の同じクラスからの 2 つの派生クラス間の関係をどのように提供できますか。
BaseEntity という名前のクラスがあり、updateDate、updateID など、すべての派生クラスにもいくつかの属性があります。
そして、その BaseClass から派生した Salary と Employee という名前の 2 つのクラスがあります。そして、これらのクラスは、1 対 1 の関係を持っている必要があります。どうすればそれを達成できますか?私は Hibernate について読んでいますが、これに関連するものを見たことがないか、まったく間違った方法で考えています。
symfony - Doctrine MappedSuperClass、カスタム注釈をオーバーライド
たとえば、クラス BaseUser (mappedsuperclass)、子クラス User があるとします。
私がしたいのは、User クラスから直接「Serializer」アノテーションを定義する (ただし、プロパティ firstName を BaseUser クラスで定義する)、または User クラスから Serialize の定義をオーバーライドすることです。
このトピックについて何も見つかりませんでした。誰かがすでにそれを理解していますか? ありがとう
hibernate - 2 つのクラス間の JPA 関係
ヘッダーと行を含むドキュメントを作成するタスクがあります。たとえば、ヘッダー (日付、在庫) と行 (品目、数量、価格、合計) を含む在庫収入伝票などです。私の問題は、クラスのアーキテクチャが正しいかどうかわからないことです。コードはこちら (JPA + Hibernate):
java - サブクラスの Java コンストラクター
スーパークラスを拡張するサブクラスがあります。スーパークラスのコンストラクターに a 、b、c のようなパラメーターがある場合MySuperClass(int a, string b, string c)
。サブクラスのコンストラクターには、 a、d、e のようなパラメーターがありますMySubClass(int a, int d, int e)
。サブクラスのコンストラクターの内部には何を入れる必要がありますか? パラメータasuper(a)
のコードを複製する必要がないように言えますか? ただし、super のコンストラクターには 3 つのパラメーターがあります。だから私はそれができないと思います。
また、スーパーの使用を無視してフィールドをパラメーターに割り当てると (のようにthis.fieldName=parameterName
)、「スーパーにはデフォルトのコンストラクターがありません」というエラーが表示されます。