hibernate 映射问题(@OneToMany and @ManyToOne) 本帖最后由 gymak 于 2012-10-16 16:13:59 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 package com.challen.atms.model;import java.util.Date;import java.util.HashSet;import java.util.Set;import javax.persistence.CascadeType;import javax.persistence.Entity;import javax.persistence.FetchType;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.persistence.JoinColumn;import javax.persistence.ManyToOne;import javax.persistence.OneToMany;import javax.persistence.Table;@Entity@Table(name="_Lift")public class Lift { private Integer Id; private String lmdSwitch; private String liftNO; private Date turn_On_Date; private Date expiry_date; private String contract_Term; private Date load_TDate; private String lift_Type; private Date lss_Date; private Date ardCommissionDate; private String m_r_Location; private String wtabove; private Integer storey; private String hPosition; private String ldType; private String ldLocation; private Integer ldNum; private Integer pCapacity; private Integer load; private String driveType; private Integer speed; private String cControl1; private String cControl2; private String upCategory; private String upBatch; private String upType; private String liftStatus1; private String liftStatus2; private String liftStatus3; private Integer toi; private String res; private Department lmCO; private Department make; private Department ardMake; private Building building; private LMD lmd; private Set<LMSchedule> lmSchedules = new HashSet<LMSchedule>(); private Set<MaskLog> maskLogs = new HashSet<MaskLog>() ; private Set<AlarmMask> alarmMasks = new HashSet<AlarmMask>(); @Id @GeneratedValue public Integer getId() { return Id; } public void setId(Integer id) { Id = id; } public String getLmdSwitch() { return lmdSwitch; } public void setLmdSwitch(String lmdSwitch) { this.lmdSwitch = lmdSwitch; } public String getLiftNO() { return liftNO; } public void setLiftNO(String liftNO) { this.liftNO = liftNO; } public Date getTurn_On_Date() { return turn_On_Date; } public void setTurn_On_Date(Date turn_On_Date) { this.turn_On_Date = turn_On_Date; } public Date getExpiry_date() { return expiry_date; } public void setExpiry_date(Date expiry_date) { this.expiry_date = expiry_date; } public String getContract_Term() { return contract_Term; } public void setContract_Term(String contract_Term) { this.contract_Term = contract_Term; } public Date getLoad_TDate() { return load_TDate; } public void setLoad_TDate(Date load_TDate) { this.load_TDate = load_TDate; } public String getLift_Type() { return lift_Type; } public void setLift_Type(String lift_Type) { this.lift_Type = lift_Type; } public Date getLss_Date() { return lss_Date; } public void setLss_Date(Date lss_Date) { this.lss_Date = lss_Date; } public String getM_r_Location() { return m_r_Location; } public void setM_r_Location(String location) { m_r_Location = location; } public String getWtabove() { return wtabove; } public void setWtabove(String wtabove) { this.wtabove = wtabove; } public Integer getStorey() { return storey; } public void setStorey(Integer storey) { this.storey = storey; } public String getHPosition() { return hPosition; } public void setHPosition(String position) { hPosition = position; } public String getLdType() { return ldType; } public void setLdType(String ldType) { this.ldType = ldType; } public String getLdLocation() { return ldLocation; } public void setLdLocation(String ldLocation) { this.ldLocation = ldLocation; } public Integer getLdNum() { return ldNum; } public void setLdNum(Integer ldNum) { this.ldNum = ldNum; } public Integer getPCapacity() { return pCapacity; } public void setPCapacity(Integer capacity) { pCapacity = capacity; } public Integer getLoad() { return load; } public void setLoad(Integer load) { this.load = load; } public String getDriveType() { return driveType; } public void setDriveType(String driveType) { this.driveType = driveType; } public Integer getSpeed() { return speed; } public void setSpeed(Integer speed) { this.speed = speed; } public String getCControl1() { return cControl1; } public void setCControl1(String control1) { cControl1 = control1; } public String getCControl2() { return cControl2; } public void setCControl2(String control2) { cControl2 = control2; } public Date getArdCommissionDate() { return ardCommissionDate; } public void setArdCommissionDate(Date ardCommissionDate) { this.ardCommissionDate = ardCommissionDate; } public String getUpCategory() { return upCategory; } public void setUpCategory(String upCategory) { this.upCategory = upCategory; } public String getUpBatch() { return upBatch; } public void setUpBatch(String upBatch) { this.upBatch = upBatch; } public String getUpType() { return upType; } public void setUpType(String upType) { this.upType = upType; } public String getLiftStatus1() { return liftStatus1; } public void setLiftStatus1(String liftStatus1) { this.liftStatus1 = liftStatus1; } public String getLiftStatus2() { return liftStatus2; } public void setLiftStatus2(String liftStatus2) { this.liftStatus2 = liftStatus2; } public String getLiftStatus3() { return liftStatus3; } public void setLiftStatus3(String liftStatus3) { this.liftStatus3 = liftStatus3; } public String getRes() { return res; } public void setRes(String res) { this.res = res; } public Integer getToi() { return toi; } public void setToi(Integer toi) { this.toi = toi; } @ManyToOne(cascade=CascadeType.PERSIST, fetch=FetchType.LAZY) @JoinColumn(name = "lmCOId") public Department getLmCO() { return lmCO; } public void setLmCO(Department lmCO) { this.lmCO = lmCO; } @ManyToOne(cascade=CascadeType.PERSIST, fetch=FetchType.LAZY) @JoinColumn(name = "makeId") public Department getMake() { return make; } public void setMake(Department make) { this.make = make; } @ManyToOne(cascade=CascadeType.PERSIST, fetch=FetchType.LAZY) @JoinColumn(name = "ardMakeId") public Department getArdMake() { return ardMake; } public void setArdMake(Department ardMake) { this.ardMake = ardMake; } @ManyToOne(cascade=CascadeType.PERSIST, fetch=FetchType.LAZY) @JoinColumn(name = "buildingId") public Building getBuilding() { return building; } public void setBuilding(Building building) { this.building = building; } @ManyToOne(cascade=CascadeType.PERSIST, fetch=FetchType.LAZY) @JoinColumn(name = "lmdId") public LMD getLMD() { return lmd; } public void setLMD(LMD lmd) { this.lmd = lmd; } @OneToMany(mappedBy="lift", cascade = {CascadeType.PERSIST}, fetch=FetchType.LAZY ) public Set<LMSchedule> getLmSchedules() { return lmSchedules; } public void setLmSchedules(Set<LMSchedule> lmSchedules) { this.lmSchedules = lmSchedules; } @OneToMany(cascade={CascadeType.REMOVE}, mappedBy="lift", fetch=FetchType.LAZY ) public Set<MaskLog> getMaskLogs() { return maskLogs; } public void setMaskLogs(Set<MaskLog> maskLogs) { this.maskLogs = maskLogs; } @OneToMany(cascade={CascadeType.REMOVE}, mappedBy="lift", fetch=FetchType.LAZY ) public Set<AlarmMask> getAlarmMasks() { return alarmMasks; } public void setAlarmMasks(Set<AlarmMask> alarmMasks) { this.alarmMasks = alarmMasks; }}lift表中lmdId字段和LMD字段是多对一的关系,其实就是lmdId是lift的外键了,本人初次使用hibernate就模仿别人的实例程序写的,现在遇到一个问题就是只要把lmd.java中的红色区域注释掉,代码就不出错,否则就报如下错误Initial SessionFactory creation failed.org.hibernate.AnnotationException: mappedBy reference an unknown target entity property: com.challen.atms.model.Lift.lmd in com.challen.atms.model.LMD.lifts这是为什么? 菜鸟的问题。。。 大家知道QQ邮箱的多附件上传的功能是用什么空间实现的吗? servlet求助 找一些资料怎么就真么难 SQL语名求助. 一个关于List类数组累加的问题?请问可以这样子写吗? ----〉操作数据库的bean的写法,这样写好不好? 两个list求交集 求不出来 这样写对吗? 一个小例程的疑问 spring mvc 在后台保存后返回提示信息的方法 通过rs.getString("");来获取数据失败,如何解决?谢谢!
package com.challen.atms.model;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
@Entity
@Table(name="_Lift")
public class Lift {
private Integer Id;
private String lmdSwitch;
private String liftNO;
private Date turn_On_Date;
private Date expiry_date;
private String contract_Term;
private Date load_TDate;
private String lift_Type;
private Date lss_Date;
private Date ardCommissionDate;
private String m_r_Location;
private String wtabove;
private Integer storey;
private String hPosition;
private String ldType;
private String ldLocation;
private Integer ldNum;
private Integer pCapacity;
private Integer load;
private String driveType;
private Integer speed;
private String cControl1;
private String cControl2;
private String upCategory;
private String upBatch;
private String upType;
private String liftStatus1;
private String liftStatus2;
private String liftStatus3;
private Integer toi;
private String res;
private Department lmCO;
private Department make;
private Department ardMake;
private Building building;
private LMD lmd;
private Set<LMSchedule> lmSchedules = new HashSet<LMSchedule>();
private Set<MaskLog> maskLogs = new HashSet<MaskLog>() ;
private Set<AlarmMask> alarmMasks = new HashSet<AlarmMask>();
@Id
@GeneratedValue
public Integer getId() {
return Id;
}
public void setId(Integer id) {
Id = id;
}
public String getLmdSwitch() {
return lmdSwitch;
}
public void setLmdSwitch(String lmdSwitch) {
this.lmdSwitch = lmdSwitch;
}
public String getLiftNO() {
return liftNO;
}
public void setLiftNO(String liftNO) {
this.liftNO = liftNO;
}
public Date getTurn_On_Date() {
return turn_On_Date;
}
public void setTurn_On_Date(Date turn_On_Date) {
this.turn_On_Date = turn_On_Date;
}
public Date getExpiry_date() {
return expiry_date;
}
public void setExpiry_date(Date expiry_date) {
this.expiry_date = expiry_date;
}
public String getContract_Term() {
return contract_Term;
}
public void setContract_Term(String contract_Term) {
this.contract_Term = contract_Term;
}
public Date getLoad_TDate() {
return load_TDate;
}
public void setLoad_TDate(Date load_TDate) {
this.load_TDate = load_TDate;
}
public String getLift_Type() {
return lift_Type;
}
public void setLift_Type(String lift_Type) {
this.lift_Type = lift_Type;
}
public Date getLss_Date() {
return lss_Date;
}
public void setLss_Date(Date lss_Date) {
this.lss_Date = lss_Date;
}
public String getM_r_Location() {
return m_r_Location;
}
public void setM_r_Location(String location) {
m_r_Location = location;
}
public String getWtabove() {
return wtabove;
}
public void setWtabove(String wtabove) {
this.wtabove = wtabove;
}
public Integer getStorey() {
return storey;
}
public void setStorey(Integer storey) {
this.storey = storey;
}
public String getHPosition() {
return hPosition;
}
public void setHPosition(String position) {
hPosition = position;
}
public String getLdType() {
return ldType;
}
public void setLdType(String ldType) {
this.ldType = ldType;
}
public String getLdLocation() {
return ldLocation;
}
public void setLdLocation(String ldLocation) {
this.ldLocation = ldLocation;
}
public Integer getLdNum() {
return ldNum;
}
public void setLdNum(Integer ldNum) {
this.ldNum = ldNum;
}
public Integer getPCapacity() {
return pCapacity;
}
public void setPCapacity(Integer capacity) {
pCapacity = capacity;
}
public Integer getLoad() {
return load;
}
public void setLoad(Integer load) {
this.load = load;
}
public String getDriveType() {
return driveType;
}
public void setDriveType(String driveType) {
this.driveType = driveType;
}
public Integer getSpeed() {
return speed;
}
public void setSpeed(Integer speed) {
this.speed = speed;
}
public String getCControl1() {
return cControl1;
}
public void setCControl1(String control1) {
cControl1 = control1;
}
public String getCControl2() {
return cControl2;
}
public void setCControl2(String control2) {
cControl2 = control2;
}
public Date getArdCommissionDate() {
return ardCommissionDate;
}
public void setArdCommissionDate(Date ardCommissionDate) {
this.ardCommissionDate = ardCommissionDate;
}
public String getUpCategory() {
return upCategory;
}
public void setUpCategory(String upCategory) {
this.upCategory = upCategory;
}
public String getUpBatch() {
return upBatch;
}
public void setUpBatch(String upBatch) {
this.upBatch = upBatch;
}
public String getUpType() {
return upType;
}
public void setUpType(String upType) {
this.upType = upType;
}
public String getLiftStatus1() {
return liftStatus1;
}
public void setLiftStatus1(String liftStatus1) {
this.liftStatus1 = liftStatus1;
}
public String getLiftStatus2() {
return liftStatus2;
}
public void setLiftStatus2(String liftStatus2) {
this.liftStatus2 = liftStatus2;
}
public String getLiftStatus3() {
return liftStatus3;
}
public void setLiftStatus3(String liftStatus3) {
this.liftStatus3 = liftStatus3;
}
public String getRes() {
return res;
}
public void setRes(String res) {
this.res = res;
}
public Integer getToi() {
return toi;
}
public void setToi(Integer toi) {
this.toi = toi;
}
@ManyToOne(cascade=CascadeType.PERSIST,
fetch=FetchType.LAZY)
@JoinColumn(name = "lmCOId")
public Department getLmCO() {
return lmCO;
}
public void setLmCO(Department lmCO) {
this.lmCO = lmCO;
}
@ManyToOne(cascade=CascadeType.PERSIST,
fetch=FetchType.LAZY)
@JoinColumn(name = "makeId")
public Department getMake() {
return make;
}
public void setMake(Department make) {
this.make = make;
}
@ManyToOne(cascade=CascadeType.PERSIST,
fetch=FetchType.LAZY)
@JoinColumn(name = "ardMakeId")
public Department getArdMake() {
return ardMake;
}
public void setArdMake(Department ardMake) {
this.ardMake = ardMake;
}
@ManyToOne(cascade=CascadeType.PERSIST,
fetch=FetchType.LAZY)
@JoinColumn(name = "buildingId")
public Building getBuilding() {
return building;
}
public void setBuilding(Building building) {
this.building = building;
}
@ManyToOne(cascade=CascadeType.PERSIST,
fetch=FetchType.LAZY)
@JoinColumn(name = "lmdId")
public LMD getLMD() {
return lmd;
}
public void setLMD(LMD lmd) {
this.lmd = lmd;
}
@OneToMany(mappedBy="lift",
cascade = {CascadeType.PERSIST},
fetch=FetchType.LAZY
)
public Set<LMSchedule> getLmSchedules() {
return lmSchedules;
}
public void setLmSchedules(Set<LMSchedule> lmSchedules) {
this.lmSchedules = lmSchedules;
}
@OneToMany(cascade={CascadeType.REMOVE},
mappedBy="lift",
fetch=FetchType.LAZY
)
public Set<MaskLog> getMaskLogs() {
return maskLogs;
}
public void setMaskLogs(Set<MaskLog> maskLogs) {
this.maskLogs = maskLogs;
}
@OneToMany(cascade={CascadeType.REMOVE},
mappedBy="lift",
fetch=FetchType.LAZY
)
public Set<AlarmMask> getAlarmMasks() {
return alarmMasks;
}
public void setAlarmMasks(Set<AlarmMask> alarmMasks) {
this.alarmMasks = alarmMasks;
}
}lift表中lmdId字段和LMD字段是多对一的关系,其实就是lmdId是lift的外键了,本人初次使用hibernate就模仿别人的实例程序写的,现在遇到一个问题就是只要把lmd.java中的红色区域注释掉,代码就不出错,否则就报如下错误
Initial SessionFactory creation failed.org.hibernate.AnnotationException: mappedBy reference an unknown target entity property: com.challen.atms.model.Lift.lmd in com.challen.atms.model.LMD.lifts
这是为什么?