質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

2回答

2374閲覧

DOMA DTO継承してよいのでしょうか?

退会済みユーザー

退会済みユーザー

総合スコア0

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2019/08/30 09:41

domaを使用しています。dtoでtableとentityのアノテーションが設定されているファイルがあります。このファイルは編集できません。その為、継承してそのファイルにentityのアノテーションをつけて項目を追加して使用してみました。一見問題なくdao、sqlと動いているのですが、方法としてこのやり方は使用して問題ないでしょうか。なお私は初めてdomaをさわります。

以上よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/09/01 04:42

ちゃんとドキュメントをよめば分かった気がするが https://doma.readthedocs.io/en/2.6.2/entity/ エンティティ定義 > エンティティリスナーの節 listener 要素に何も指定しない場合、エンティティクラスが他のエンティティクラスを継承 しているかどうかで採用する設定が変わります。
退会済みユーザー

退会済みユーザー

2019/09/01 05:33

ご回答ありがとうございます。 ドキュメントについて読み直します。
guest

回答2

0

ベストアンサー

java

1@Entity 2public class Employee {} 3 4@Entity 5public class MyEmployee extends Employee {}

上記のように継承しているということですね。
この使い方はDomaでサポートされていますので問題ありません。

投稿2019/08/31 08:57

nakamura-to

総合スコア103

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/09/01 02:46 編集

ご回答ありがとうございます。 サポートについてご指摘ありがとうございます。 ご指摘いただいた内容を含め以下を気にしております。 頂いたサンプルを変更いたしますと以下のように@Tableがついているものを継承してよいか ということでございます。 @Entity @Table(name = "EMP") public class Employee { @Column(name = "EMPLOYEE_NAME") String employeeName; ... } @Entity public class MyEmployee extends Employee { @Column(name = "MY_NAME") String myName; BigDecimal salary; ... } SQLでは継承元のテーブルと結合した別テーブルのカラムが継承先にある形です。 マニュアルを参照してはおりますが、ご意見いただければ幸いです。 以上よろしくお願いいたします。
nakamura-to

2019/09/01 02:54

おそらく、DB上の実際のテーブルには対応しないDTOということですね。 `@Table` はSQL内で `/*%expand*/` ディレクティブを使ったり、更新系のSQL(INSERT, UPDATE, DELETE等)を自動生成しない限りは参照されませんのでなくても大丈夫です。 もし、DB上の実際のテーブルに対応させたいなら継承先のDTOにも `@Table` を付与してください。
退会済みユーザー

退会済みユーザー

2019/09/01 05:28

ご回答ありがとうございます。 状況について理解できてきました。 ご回答を元に試して見ます。 ありがとうございました。
guest

0

直接いじらせないために継承させるのはありと思いますが、
逆に、何が懸念点なのでしょうか?

自身で編集できないのであれば継承するか同等の機能を自分で作るしかないわけですし。

投稿2019/08/30 12:08

m.ts10806

総合スコア80850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/09/01 02:25

ご回答ありがとうございました。正しい記述方法でなく動いていることが、懸念点でした。同等の機能を作ることについても検討したいと思います。
m.ts10806

2019/09/01 04:14

逆に「正しい」とはなんでしょう? あくまでクラスに過ぎないと思うのですけど
退会済みユーザー

退会済みユーザー

2019/09/01 05:23

失礼致しました。 正しい記述方法を知らないことが気になっていると言う意味合いを書きたかったです。マニュアルをちゃんと見ます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問