只有双向的时候使用mappedBy
mappedBy和JoinColumn实质上指向的是同一个表即外键作为主键所在的表对应的实体(其对应对象1)
mappedBy对应实体的声明对象1
JoinColumn对应的是对象1的主键
比如:
花朵类{
花朵类名 (主键)
玫瑰花类 对象2
get玫瑰花类
@onetoone(mappdeBy"对象1")
}
玫瑰花类{
玫瑰花名字
玫瑰花颜色
花朵类别 对象1
@joincolumn(name="对象1的主键")
}
@Entity(name="DFSSTUDENT")
@Table(name="DFSSTUDENT")
@SuppressWarnings("serial")
public class Dfsstudent implements Serializable {
private String dfsstudentname;
private Dfsclass dfc;
/**
* @return the dfsstudentname
*/
@Id
@Column(name="DFSSTUDENTNAME")
public String getDfsstudentname() {
return dfsstudentname;
}
/**
* @param dfsstudentname the dfsstudentname to set
*/
public void setDfsstudentname(String dfsstudentname) {
this.dfsstudentname = dfsstudentname;
}
/**
* @return the dfc
*/
@OneToOne(cascade=CascadeType.ALL,fetch=FetchType.LAZY)
@JoinColumn(name="dfsclassname")
public Dfsclass getDfc() {
return dfc;
}
/**
* @param dfc the dfc to set
*/
public void setDfc(Dfsclass dfc) {
this.dfc = dfc;
}
}
@Entity(name="DFSCLASS")
@Table(name="DFSCLASS")
@SuppressWarnings("serial")
public class Dfsclass implements Serializable {
private String dfsclassname;
private Dfsstudent dfst;
/**
* @return the dfsclassname
*/
@Id
@Column(name="DFSCLASSNAME")
public String getDfsclassname() {
return dfsclassname;
}
/**
* @param dfsclassname the dfsclassname to set
*/
public void setDfsclassname(String dfsclassname) {
this.dfsclassname = dfsclassname;
}
/**
* @return the dfst
*/
@OneToOne(cascade=CascadeType.ALL,fetch=FetchType.LAZY,mappedBy="dfc")
public Dfsstudent getDfst() {
return dfst;
}
/**
* @param dfst the dfst to set
*/
public void setDfst(Dfsstudent dfst) {
this.dfst = dfst;
}
}
+20160628-加点料+
我最近也看了这个,呵呵 我谈谈我的看法,你看能不能这样理解
比如说:Person和IdCard,在IdCard里面用mappedBy.
如果没有mappedBy,两边都加OneToOne的话,两边都以对方的主键作为外键。这样冗余大了点。
单向的时候,可以通过Person找到IdCard。双向的时候也可以通过IdCard找到Person.
加了mappedBy的话,只在Person里面加了外键。我们在IdCard类里有一个Person属性,当get或load一个IdCard的时候,hibernate看到了你在这个OneToOne里面加了一个mappedBy,所以会去Person类对应的表里去找一个外键与你要get的IdCard的主键相同的记录,放到IdCard的person属性中。这样也就能更具IdCard来找到Peorson了,也就实现了所谓的双向关联。
本文详细解释了在Java Hibernate框架中mappedBy与JoinColumn的区别及应用。通过具体例子说明了单向与双向关联的区别,以及mappedBy如何实现双向关联。
1739

被折叠的 条评论
为什么被折叠?



