[英]JPA OneToMany MappedBy relationships
我有三个类,Site,GoupIP和IP
一个站点具有一个或多个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类上,我得到:
在属性“ ips”中,“映射人”值“ groupip”无法解析为目标实体上的属性。
我的代码有什么问题?
您必须在关系中放入的mappingBy名称是类属性的名称,而不是表名称。
因此,将@OneToMany(mappedBy = "groupIp",...
(注意大写)代替@OneToMany(mappedBy = "groupip",...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.