ich mich nur gefragt bin, wenn es eine solche Art und Weise, dass ich meine MySQL-Tabelle bauen, wieJPA + Hibernate: Wie eine Einschränkung definieren ON DELETE CASCADE mit
ALTER TABLE `USERINFO`
ADD CONSTRAINT `FK_USER_ID` FOREIGN KEY (`USERID`) REFERENCES `USERACCOUNT` (`USERID`)
ON DELETE CASCADE
ON UPDATE CASCADE;
aber ich habe nur in meinem DDL wenn Hibernate ++ JPA beginnt meinen Tisch zu bauen "<property name="hibernate.hbm2ddl.auto" value="create" />
"
ALTER TABLE `USERINFO` ADD CONSTRAINT `FK_USER_ID` FOREIGN KEY (`USERID`) REFERENCES `USERACCOUNT` (`USERID`);
In meinem Unterricht haben, habe ich diese Anmerkung Setup,
// UserAcc.java
@Entity
@Table(name = "USERACC")
public class UserAcc implements Serializable {
private static final long serialVersionUID = -5527566248002296042L;
@Id
@Column(name = "USERID")
@GeneratedValue(strategy=GenerationType.AUTO)
private Integer userId;
@OneToOne(mappedBy = "userAcc")
private UserInfo userInfo;
....
public UserInfo getUserInfo() {
return userInfo;
}
public void setUserInfo(UserInfo userInfo) {
this.userInfo = userInfo;
}
...
und
// UserInfo.java
@Entity
@Table(name = "USERINFO")
public class UserInfo implements Serializable {
private static final long serialVersionUID = 5924361831551833717L;
@Id
@Column(name = "USERINFO_ID", nullable=false)
@GeneratedValue(strategy=GenerationType.AUTO)
private Integer userInfoId;
@OneToOne(cascade = {CascadeType.ALL})
@JoinColumn(name="USERID", nullable=false)
@ForeignKey(name = "FK_USER_ID")
private UserAcc userAcc;
public Integer getUserInfoId() {
return userInfoId;
}
public void setUserInfoId(Integer userInfoId) {
this.userInfoId = userInfoId;
}
...
Beachten Sie, dass, ist Useraccount Tabelle die Eltern/Haupttabelle hier während Userinfo eine erweiterte Tabelle an eine andere Stelle zu normalisieren ist. Jede Antwort würde sehr geschätzt werden. Ich bin nur neugierig, wie es gemacht wird, denn ich liebe es auch in MySQL zu arbeiten. Ich bin nur wirklich daran gewöhnt, einen Datensatz aus der Elterntabelle (USERACOUNT) zu löschen, der mir auch erlauben würde, ein Löschen durch untergeordnete Datensätze abhängig von dem spezifischen Datensatz von einer übergeordneten/primären Tabelle zu kaskadieren.
Danke!
Haben Sie mit jpa eine Lösung für dieses Problem gefunden? Ich habe das gleiche Problem, und ich möchte keine bidirektionale Beziehung verwenden, die faules Holen auf dem Elternteil verursacht. –