0
私は 'タイム'テーブルに複数のタイムスタンプを挿入しようとしています。各タイムスタンプには、「競合者」テーブル内のエントリのIDが含まれています。データベースに新しいタイムスタンプを作成するたびに、新しい競合者エントリも取得します。Hibernateはエントリーをマージしません
私はいつも新しいエントリーを得る理由を教えてください。どうすればそれを防ぐことができますか?
競合他社
@Entity
@Table(name="competitor")
public class Competitor extends BaseEntity{
private String firstName;
private String lastName;
private String birthday;
@Column(name="firstName")
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
@Column(name="lastName")
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
@Column(name="birthday")
public String getBirthday() {
return birthday;
}
public void setBirthday(String birthday) {
this.birthday = birthday;
}
}
時間
@Entity
@Table(name="time")
public class Time extends BaseEntity{
private String route;
private Competitor competitor;
private String time;
@Column(name="route")
public String getRoute() {
return route;
}
public void setRoute(String route) {
this.route = route;
}
@ManyToOne(cascade = CascadeType.ALL)
public Competitor getCompetitor() {
return competitor;
}
public void setCompetitor(Competitor competitor) {
this.competitor = competitor;
}
@Column(name="time")
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
}
あなたは、既存の 'Competitor'を関連付けたい場合は' Time'エンティティでは、最初に 'Competitor'を最初に検索し、この取り出したオブジェクトを' Time'オブジェクトで設定する必要があります。 – Priyesh