次の仕様で、ArticleテーブルとFruitテーブルで構成されるdbを実装しました。
create table Fruit
(
ART_ID bigint,
FRU_ID bigint not null auto_increment,
FRU_FROZEN varchar(15),
primary key(FRU_ID)
);
# Implemented
create table Article
(
ART_ID bigint,
ART_NAME varchar(10) not null,
ART_COST varchar(10) not null,
primary key(ART_ID)
);
テーブルの変更フルーツ追加制約FK_FRUIT_ARTICLE外部キー(ART_ID)は、更新制限の削除制限に関する記事(ART_ID)を参照します。
および次のクラスエンティティを使用:Article.java
@Entity
@Table(name = "Article")
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public class Article implements Serializable
{
@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;
//コンストラクター、ゲッター、セッター
Fruit.java
@Entity
@Table(name="Fruit")
public class Fruit extends Article{
@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "FRU_ID")
private long fruitID;
@Basic(optional = false)
@Column(name = "FRU_FROZEN")
private String fruitFrozen;
//コンストラクター、ゲッター、セッター
さて、私の問題は、ArticleとFruitでIDを取得する方法です。このように保持すると、サブクラスにIDClassが含まれていてはならないという例外が発生します。これは、複数のIDが発生するためです。どんな助けでも大歓迎です。前もって感謝します。