問題タブ [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.

0 投票する
2 に答える
2071 参照

java - JPA @MappedSuperclass サブクラスの異なる Id カウンター

すべてのエンティティの基本クラスである @MappedSuperclass を取得しました (@Entity、複数のサブクラスによる直接または間接)。

Id は上記のように生成されます。

私の問題は、@Id-counter が各 @Entity で同じであることです。実際には、Long.MAX_VALUE に到達するまでに時間がかかるため、これは大きな問題ではありません。ただし、すべてのエンティティに対してカウンターが 1 つしかないため、最大値に到達するのははるかに簡単です。上記のコードをすべての @Entity-classes に追加することなく、別の @Id-counter を使用するにはどうすればよいですか?

(あなたの答えが重要な場合:私はH2データベースを使用しています。)

0 投票する
2 に答える
729 参照

php - Zendフレームワーク2のMappedSuperclassを使用したDoctrine 2多対多

私はDoctrine2を初めて使用し、次のDB構造のエンティティを作成しようとしています: ここに画像の説明を入力

マシン クラスの 1 つの属性に、すべてのマシン パーツを配列として配置したいと考えています。私はこれを試しました:

は中間エンティティ/テーブル (など) の場所MachineHasPartですが、次のエラーで失敗しました:@MappedSuperclassmachineHasCylinder

'SELECT FROM machineHasPart t0' の実行中に例外が発生しました。

ここで ORM を使用するには、データベースを再構築する必要がありますか? または、私の場合の解決策はありますか?

0 投票する
1 に答える
203 参照

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' が存在しません

0 投票する
1 に答える
2708 参照

java - JPA/Hibernate @MappedSuperclass と @Inheritance(strategy = InheritanceType.JOINED) の関係

JPAモデルで表される3つのテーブルがあります。最初の1つ:

次のクラスは BaseEntity を拡張します。

最後は Person を拡張する Student です:

したがって、Person テーブルと Student テーブルの両方に「アクティブ」なフィールドがあります。PersonRepository を介してフィールド「アクティブ」を更新すると、Student テーブルの適切な行も更新されます。今のところ、Person テーブルのみを更新します。出来ますか?

0 投票する
2 に答える
1596 参照

hibernate - 複数の継承レベルを持つ @MappedSuperclass は、エンティティ例外のマッピングで繰り返し列をスローします

すべてのエンティティに共通のフィールドまたはマッピングを 1 か所に持つ親クラスを作成しました。

ただし、継承レベルが 1 を超える場合、休止状態は例外をスローします。

MappingException: Repeated column in mapping for entity

コードサンプルは、

誰かが私が間違っていることを指摘できますか?

0 投票する
3 に答える
767 参照

java - Hibernate 継承マッピングの不明なプロパティ

具象クラスに共通のフィールドを含むマップされたスーパークラスがある継承構造に苦労しています。このスーパークラスには、「ラッパー」オブジェクトとの 1 対 1 のマッピングがあります。

オブジェクトは次のようになります。

簡単にするために、具体的なクラスを 1 つだけ含めましたが、いくつかあります。

このマッピングは、ラッパー オブジェクトに「ベース」への参照がない場合にうまく機能します。ラッパーとベースの間に双方向の関係を追加しようとするとすぐに、このエラーが発生し始めます....フィールドがあるので意味がありません。

私は何が欠けていますか?ありがとう、

0 投票する
1 に答える
66 参照

java - Hibernate - SuperClass -MappedSuperClass

休止状態の同じクラスからの 2 つの派生クラス間の関係をどのように提供できますか。

BaseEntity という名前のクラスがあり、updateDate、updateID など、すべての派生クラスにもいくつかの属性があります。

そして、その BaseClass から派生した Salary と Employee という名前の 2 つのクラスがあります。そして、これらのクラスは、1 対 1 の関係を持っている必要があります。どうすればそれを達成できますか?私は Hibernate について読んでいますが、これに関連するものを見たことがないか、まったく間違った方法で考えています。

0 投票する
1 に答える
810 参照

symfony - Doctrine MappedSuperClass、カスタム注釈をオーバーライド

たとえば、クラス BaseUser (mappedsuperclass)、子クラス User があるとします。

私がしたいのは、User クラスから直接「Serializer」アノテーションを定義する (ただし、プロパティ firstName を BaseUser クラスで定義する)、または User クラスから Serialize の定義をオーバーライドすることです。

このトピックについて何も見つかりませんでした。誰かがすでにそれを理解していますか? ありがとう

0 投票する
1 に答える
111 参照

hibernate - 2 つのクラス間の JPA 関係

ヘッダーと行を含むドキュメントを作成するタスクがあります。たとえば、ヘッダー (日付、在庫) と行 (品目、数量、価格、合計) を含む在庫収入伝票などです。私の問題は、クラスのアーキテクチャが正しいかどうかわからないことです。コードはこちら (JPA + Hibernate):

0 投票する
2 に答える
232 参照

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)、「スーパーにはデフォルトのコンストラクターがありません」というエラーが表示されます。