問題タブ [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 - ジェネリック クラス @MappedSuperclass を targetEntity.Error として適用します: models.Unit.parent の @ManyToOne が不明なエンティティを参照しています: models.GenericHierarchic
他のジェネリック クラスを拡張するジェネリック クラスがあります。それらはすべてです@MappedSuperclass
。したがって、データベースに独自のテーブルがありません。また、抽象的であるため、オブジェクトはありません。それらは私のエンティティの単なるスケルトンです@Entity
私の継承構造:
Generic -> GenericDictionary -> GenericHierarchicalDictionary -> Unit
Unit は@Entity
クラスで、オブジェクトがあります。
ユニットエンティティは階層構造を持っているため、エンティティはそれ自体と関係がありますが、そのために抽象クラス(@MappedSuperclass
)を使用しているため、その抽象クラスで動的に定義したいと思います。
私のGenericHierarchicalDictionary:
しかし、idは機能しません。エラーが発生します:
そのエラーが正しければ、targetEntity に@Entity
注釈付きの Java クラスを割り当てる必要がありますが、それは私が望むものではありません。
@ManyToOne targetEntity をエンティティのコンテキストから動的に宣言したいと思います。
どうすればこれを達成できますか? 助けてください。
php - Silex + Doctrine ORM は、@MappedSuperclass に設定されている場合、イベントを発生させません
Doctrine ORM で Silex を使用しています。すべて正常に動作していましたが、理解できない問題が発生しました。
私は名前空間 Lpdq\Model\Entity に Entity News を持っています。これは名前空間 Lpdq\Model の別のクラス News を拡張します。このクラスには教義のためのいくつかのメソッドとイベント前後のメソッドが含まれています。
私のエンティティニュース
私のスーパークラスのニュース
私のコントローラーでは、エンティティをインスタンス化して永続化/フラッシュするだけです
私の問題は、エンティティを永続化するときに prePersist/preUpdate メソッドが呼び出されないことです。 (作成および更新されたプロパティがnullであるため、エラーが発生します)
エンティティ News を HasLifecycleCallbacks として設定し、同じ prePersist/Update メソッドを配置すると、それらがトリガーされます。
私がここにいる間、エンティティを拡張して事前/事後およびその他の方法を配置する方法が良いか悪いか疑問に思っていますか?
php - xml マッピングを使用してドクトリンにマップされたスーパークラスで何を拡張するかを指定する方法
スーパークラス マッピングが Doctrine2 でどのように機能するかを理解しようとしています。使用する例がいくつかありますが、xml マッピングを使用してエンティティを作成し、次にデータベース スキーマを作成しています。「extends」パラメーターを「entity」タグに示した例を 1 つ見つけましたが、現在のスキーマではサポートされていないようです。
どのクラスがマップされたスーパークラスを拡張する必要があるかを XML ドライバーに伝えるにはどうすればよいでしょうか?
SW
java - JPA、MappedSuperclass、列 ID は NULL を受け入れることができません
Customer、Request などのテーブルがあり、それぞれに ID フィールドがありました。代わりに、抽象的な @MappedSuperclass があります。
@Id
@GeneratedValue
private Long id
フィールドであり、すべてのテーブルはそれを で拡張し
@AttributeOverride(name="id", column=@Column(name="ID_CUSTOMER")
ます。しかし今、顧客をテーブルに追加しようとすると、例外が発生します: 列 ID_Customer は Null 値を受け入れることができません。各テーブルに独自の id フィールドがある場合、すべて正常に動作します。どうしたの?ありがとう
java - 「クラス play.data.Form のシリアライザーが見つかりません」 - ヘルパー クラス フォーム バインディングの例外
SubtaskGroupA と SubtaskGroupB の両方が @MappedSuperclass サブタスクから継承し、ユーザーが 1 つのグループの複数のサブタスクを送信できるようにする継承構造があります。フィールド List subtasks を持つヘルパー クラス SubtaskList を使用します。このヘルパー クラスのフォームがレンダリングされ、ユーザーは (scala の @select-helper を使用して) すべてのサブタスクに情報を入力し、フォームを送信します。を使用して入力をバインドするForm<SubtaskList> form = form(SubtaskList.class).bindFromRequest();
と、次の例外が発生します。
すべてのフィールドはパブリックのゲッター/セッターでプライベートです。すべての SubtaskGroupA のリストで toJson を呼び出すと、同じ例外が発生します。
すべての助けに感謝します。
編集: @JsonIgnore アノテーションは少し役に立ったと思いますが、今は bindFromRequest() で別の例外を受け取ります:
`
java - @MappedSuperclass で定義された @Id を JPA でオーバーライドする
アプリケーション内のすべてのエンティティによって拡張され、基本的に識別子プロバイダーとして機能するクラス AbstractEntity があります。
カスタム シーケンス ジェネレーターが必要なため、いくつかのエンティティ クラスに対して個別の Id を定義する必要がある場合があります。これはどのように達成できますか?
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' が存在しません