我有三個類,Site,GoupIP和IPJPA OneToMany MappedBy關係
一個站點有一個或多個GrouIP。 GroupIP有一個或多個IP。
下面是代碼:
網站
@Entity
@Table(name = "site")
public class Site implements Serializable {
private Set<GroupIp> groups;
@OneToMany(mappedBy = "site", fetch = FetchType.EAGER, cascade =CascadeType.ALL)
public Set<GroupIp> getGroups() {
return groups;
}
public void setGroups(Set<GroupIp> groups) {
this.groups = groups;
}
}
GroupIP
@Entity
@Table(name = "groupip")
public class GroupIp implements Serializable {
private Set<Ip> ips;
private Site site;
@ManyToOne(cascade = CascadeType.MERGE)
@JoinColumn(name = "site_id")
public Site getSite() {
return site;
}
@OneToMany(mappedBy = "groupip", fetch = FetchType.EAGER, cascade =CascadeType.ALL)
public Set<Ip> getIps() {
return ips;
}
public void setIps(Set<Ip> ips) {
this.ips= ips;
}
}
IP
@Entity
@Table(name = "ip")
public class Ip implements Serializable {
private GroupIp groupIp;
@ManyToOne(targetEntity = GroupIp.class,cascade = CascadeType.MERGE)
@JoinColumn(name = "groupip_id", nullable=false)
public GroupIp getGroupIp() {
return groupIp;
}
public void setGroupIp(GroupIp groupIp) {
this.groupIp = groupIp;
}
}
在GroupIp類,我m到處:
在屬性「IPS」,值「groupip」「由映射」不能被解析到目標實體的屬性。
我的代碼有什麼問題?
?沒有必要使用它,因爲「Site」類定義了一對多關係,所以它將創建一個表來映射這些行。如果你試圖在你的類之間實現單向關係,那麼你做錯了。見[這裏](http://stackoverflow.com/questions/12038380/how-to-define-unidirectional-onetomany-relationship-in-jpa)。 – px06
由mappedBy =「groupIp」替換mappedBy =「groupip」 –
@ px06他在哪裏聲明他希望site-groupip關係是單向的?還要注意,如果你想要一個雙向關係,你需要映射雙方,但使一個關係的所有者。 – Thomas