【发布时间】:2015-12-18 22:31:54
【问题描述】:
我在网页上有一个表单,需要将其放入两个不同的表中,即 appinfo 和首选项。 appinfo 和preferences 都有一个自动生成的id。 appinfo 还包含一个名为“preferenceid”的首选项的外键。我需要使用 hibernate 将首选项表的自动生成的 id 输入到此字段中。
我使用 SpringMVC 创建了两个 POJO,我正在尝试将它们写入数据库。基本格式是:
Preferences.java:
@Entity
@Table (name ="preferences")
public class Preferences implements Serializable {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int preferencesid;
(Other variables with getters and setters)
@OneToOne
@JoinColumn(name="preferencesid", referencedColumnName="preferenceid")
private AppInfo ai;
public AppInfo getAi() {
return ai;
}
public void setAi(AppInfo ai) {
this.ai = ai;
}
AppInfo.java
@Entity
@Table (name ="appinfo")
public class AppInfo implements Serializable {
@Id
@Column(name = "appuserid")
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int id;
@OneToOne
@JoinColumn(name="preferenceid", referencedColumnName="preferencesid")
private Preferences p;
(Other variables and getters and setters)
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public Preferences getP() {
return p;
}
public void setP(Preferences p) {
this.p = p;
}
当我保存数据时,Preferences 工作正常,它会自动生成它的 id 值。但是我的 AppInfo 没有正确获取preferencesid;它只有空值。如果我更改表以允许空值,则两者都将插入所有正确的信息,除了 AppInfo 表中的preferencesid 现在为空。
【问题讨论】:
-
对不起,如果我不是很清楚。我在网页上有一个表单,需要将其放入两个不同的表中,即 appinfo 和首选项。 appinfo 和preferences 都有一个自动生成的id。 appinfo 还包含一个名为“preferenceid”的首选项的外键。我需要使用 hibernate 将首选项表的自动生成的 id 输入到此字段中。
-
嗨@MMX,把它放在你的问题上。这是您需要更新的地方
标签: java mysql hibernate jpa one-to-one