私がやろうとしているのは、自分のプレイを作ることです! プロジェクトは、MySQL 上の既存のデータベースを使用します。データベースへの接続は問題ありません。私の問題は、MySQL データベースの外部キー制約を私の Play にリンクすることにあります! プロジェクトのクラスの @ManyToOne 関係。
したがって、基本的に私が現在データベースに持っているものは次のとおりです。
...
create table clubadmin (
clubadmin_id int not null auto_increment,
club_id int not null,
user_id int not null,
primary key (clubadmin_id),
constraint fk_clubadmin_club_id foreign key (club_id) references club(club_id),
constraint fk_clubadmin_user_id foreign key (user_id) references user(user_id)
);
create table special(
spec_id int not null auto_increment,
spec_datetime datetime not null,
spec_content varchar(500) not null,
clubadmin_id int not null,
primary key (spec_id),
constraint fk_special_clubadmin_id foreign key (clubadmin_id) references clubadmin(clubadmin_id)
);
...
special と clubadmin の関係に重点を置いています。
私の遊びで!プロジェクト 次のものを持つ ClubAdmin と Special クラスがあります。
package models;
...
@Entity
@Table(name="special")
public class Special extends GenericModel
{
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Required
public Long spec_id;
...
@ManyToOne
@Required
public Clubadmin clubadmin;
public Special(Clubadmin admin,...)
{
...
this.clubadmin = admin;
...
}
}
と
package models;
...
@Entity
@Table(name="clubadmin")
public class ClubAdmin extends GenericModel
{
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Required
public Long clubadmin_id;
...
@OneToMany(mappedBy="clubadmin",cascade=CascadeType.ALL)
public List<Special> specials;
public ClubAdmin(...)
{
...
this.specials=new ArrayList<Special>();
...
}
}
私が見る限り、Special クラスでの @ManyToOne 関係の作成は、制約clubadmin_clubadmin_id
の存在に関係なく、外部キーを表すという名前の Special テーブル内に新しいフィールドを作成しているように見えます。fk_special_clubadmin_id
これは起こらないはずです。
Play! の作り方 独自の制約を作成しないように、データベース内の既存の制約を認識して使用しますか?
私はプレイを使用しています!1.2.4 および MySQL 5.3
ありがとう!