[size=large]User表[/size]
@Entity
@Table(name = "user")
public class User implements Serializable {
private static final long serialVersionUID = 6460630554415231725L;
public User() {
}
private Integer userId;
private String userName;
private String password;
private Integer authority;
private Integer employeeId;
private Employee employee;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public Integer getUserId() {
return userId;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
@Column(length = 15)
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
@Column(length = 15)
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public void setAuthority(Integer authority) {
this.authority = authority;
}
@Column(length = 1)
public Integer getAuthority() {
return authority;
}
public void setEmployeeId(Integer employeeId) {
this.employeeId = employeeId;
}
public Integer getEmployeeId() {
return employeeId;
}
public void setEmployee(Employee employee) {
this.employee = employee;
}
[color=red] [b]@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "employeeid")
public Employee getEmployee() {
return employee;
}[/b][/color]
}
[size=large]Employee表[/size]
@Entity
@Table(name = "employee")
public class Employee implements Serializable {
/**
*
*/
private static final long serialVersionUID = 984272591543594665L;
private Integer employeeId;
private String employeeName;
private String sex;
private Integer age;
private String address;
private Integer deptId;
public Integer getDeptId() {
return deptId;
}
public void setDeptId(Integer deptId) {
this.deptId = deptId;
}
public Integer getFilialeId() {
return filialeId;
}
public void setFilialeId(Integer filialeId) {
this.filialeId = filialeId;
}
public Integer getPositionId() {
return positionId;
}
public void setPositionId(Integer positionId) {
this.positionId = positionId;
}
private Integer filialeId;
private Integer positionId;
private String phone;
private String email;
private String remark;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public Integer getEmployeeId() {
return employeeId;
}
public void setEmployeeId(Integer employeeId) {
this.employeeId = employeeId;
}
@Column(length = 20)
public String getEmployeeName() {
return employeeName;
}
public void setEmployeeName(String employeeName) {
this.employeeName = employeeName;
}
@Column(length = 2)
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
@Column(length = 3)
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Column(length = 20)
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
@Column(length = 30)
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
然后我设了hibernate自动建表,@JoinColu(name="[color=red]employeeId[/color]")就报
org.hibernate.MappingException: Repeated column in mapping for entity: com.st.po.User column: employeeId (should be mapped with insert="false" update="false")
然后我把employeeid中的[color=red]I[/color]改成小写,@JoinColu(name="[color=red]employeeid[/color]"),又建表成功了,求解!!!!!
User类的这两个成员变量:private Integer employeeId会在数据里映射生成一个叫employeeId的字段;private Employee employee会默认在数据库里映射生成一个叫employee_id的字段,如果想给employee_id改名就用@JoinColumn(name="**"); 你现在把employee_id改名为employeeId,而employeeId这个字段本来就已经存在了,同时存在两个同名的字段,当然会产生冲突!
你的本意应该是让User类与Employee类做个关联映射,你把private Integer employeeId这项去掉就可以了!当你在User类里做了private Employee employee这样的关联后, Hibernate会自动建立对应于这个关联的字段:employee_id
public Integer getEmployeeId() {
return employeeId;
}
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "employeeid")
public Employee getEmployee() {
return employee;
}
如果你不把大写I改为小写的话,这里的生成字段名字就发生冲突了!Repeated column 是字段重复的意思!