【发布时间】:2015-07-07 01:35:17
【问题描述】:
我有 2 个具有一对多关系的实体,即一个地址可以是多个员工。
MySQL 数据库:
地址
- address_id INT PK AutoIncr
- 城市 VARCHAR
- 国家/地区 VARCHAR
员工
- id PK AutoIncr
- first_name VARCHAR
- last_name VARCHAR
- 电子邮件 VARCHAR
- registration_date 日期
- employee_id INT FK
我在休眠中有以下实体,我想获取具有特定位置的所有员工的列表。
hibernate.cfg.xml
<mapping class="com.example.bean.EmployeeBean"/>
<mapping class="com.example.bean.AddressBean"/>
@Entity
@Table(name="ADDRESS")
public class AddressBean {
@Id
@GeneratedValue
@Column(name="ADDRESS_ID")
private int addressId;
@Column(name="CITY")
private String city;
@Column(name="COUNTRY")
private String country;
@OneToMany(mappedBy="EMPLOYEE")
private ArrayList<EmployeeBean> employeeList;
public int getAddressId() {
return addressId;
}
public void setAddressId(int addressId) {
this.addressId = addressId;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getCountry() {
return country;
}
public void setCountry(String country) {
this.country = country;
}
public ArrayList<EmployeeBean> getEmployeeList() {
return employeeList;
}
public void setEmployeeList(ArrayList<EmployeeBean> employeeList) {
this.employeeList = employeeList;
}
}
@Entity
@Table(name="EMPLOYEE")
public class EmployeeBean {
@GeneratedValue
@Id
@Column(name="ID")
private int id;
@Column(name="FIRST_NAME")
private String firstName;
@Column(name="LAST_NAME")
private String lastName;
@Column(name="EMAIL")
private String email;
@Column(name="REGISTRATION_DATE")
private String registrationDate;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getRegistrationDate() {
return registrationDate;
}
public void setRegistrationDate(String registrationDate) {
this.registrationDate = registrationDate;
}
}
编译时出现以下错误.. 我哪里做错了?
Initial SessionFactory creation failed.org.hibernate.AnnotationException: Illegal attempt to map a non collection as a @OneToMany, @ManyToMany or @CollectionOfElements: com.example.bean.AddressBean.employeeList
【问题讨论】:
-
mysql sqlserver.请标记适当的技术
-
您的员工 bean 没有被注释为实体?
-
我抄错了..它被注释了。已编辑
-
@ImamBux 地址中有employee_ID 列吗?
-
我没有在数据库级别看到这两个表之间的任何引用。
标签: java mysql sql-server hibernate