2 つのエンティティがあるとしますArticle
。1 つは で、もう 1 つはFruits
です。これで、エンティティのすべての属性がエンティティArticle
によって継承されますFruits
。
したがって、列を持つ Article テーブルがあるとしましょう。
ART_ID
ART_NAME
ART_COST
および列を持つ Fruit テーブル:
FRU_ID
FRU_FROZEN
Fruit
ここで、JPA コードで、オブジェクトを取得するときに、オブジェクトであるはずのすべてのデータを取得できるようにしたいと考えています。このデータは、テーブルArticle
とFruit
テーブル ART_ID
の両方からの情報で構成されています。ART_NAME
ART_COST
FRU_ID
FRU_FROZEN
これはJPAで可能ですか?@Inheritance
、@JoinColumn
または何を使用する必要がありますか? 必要に応じてコードを提供できます。
* 編集 *
以下のコードが私のニーズに合っていると結論付けました。
@Entity
@Table(name = "Article")
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public class Article {
@Id @GeneratedValue(strategy=GenerationType.AUTO)
@Basic(optional = false)
@Column(name = "ART_ID")
private Long id;
@Basic(optional = false)
@Column(name = "ART_NAME")
private String name;
@Basic(optional = true)
@Column(name = "ART_COST")
private String cost;
// ...
}
@Entity
@Table(name="Fruits")
@AttributeOverrides({
@AttributeOverride(name="name", column=@Column(name="ART_NAME")),
@AttributeOverride(name="cost", column=@Column(name="ART_COST")),
})
public class Fruits extends Article {
@Id @GeneratedValue(strategy=GenerationType.AUTO)
@Basic(optional = false)
@Column(name = "FRU_ID")
private Long fruitID;
@Column(name="FRU_FROZEN")
private String fruFrozen;
//...
}
ありがとう!