Я пытаюсь реализовать простую операцию соединения с моими двумя таблицами, используя комментарии hibernate 3 с mvc spring3.
У меня есть две таблицы:
Employee
CREATE TABLE IF NOT EXISTS `employee` (`enter code here`
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL,
`address1` varchar(100) NOT NULL,
`address2` varchar(100) NOT NULL,
`created_at` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB
Зарплата
CREATE TABLE IF NOT EXISTS `salary` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`employee_id` int(11) NOT NULL,
`basic_pay` int(5) NOT NULL,
`take_home` int(5) NOT NULL,
PRIMARY KEY (`id`),
KEY `employee_id` (`employee_id`)
) ENGINE=InnoDB
Я создал два аннотированных модальных класса:
Employee.java
@Entity
@Table(name = "employee", catalog = "employee")
public class Employee implements java.io.Serializable {
private Integer id;
private String name;
private String address1;
private String address2;
private Date createdAt;
private Set salaries = new HashSet(0);
public Employee() {
}
public Employee(String name, String address1, String address2,
Date createdAt) {
this.name = name;
this.address1 = address1;
this.address2 = address2;
this.createdAt = createdAt;
}
public Employee(String name, String address1, String address2,
Date createdAt, Set salaries) {
this.name = name;
this.address1 = address1;
this.address2 = address2;
this.createdAt = createdAt;
this.salaries = salaries;
}
@Id
@GeneratedValue(strategy = IDENTITY)
@Column(name = "id", unique = true, nullable = false)
public Integer getId() {
return this.id;
}
public void setId(Integer id) {
this.id = id;
}
@Column(name = "name", nullable = false, length = 100)
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
@Column(name = "address1", nullable = false, length = 100)
public String getAddress1() {
return this.address1;
}
public void setAddress1(String address1) {
this.address1 = address1;
}
@Column(name = "address2", nullable = false, length = 100)
public String getAddress2() {
return this.address2;
}
public void setAddress2(String address2) {
this.address2 = address2;
}
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "created_at", nullable = false, length = 0)
public Date getCreatedAt() {
return this.createdAt;
}
public void setCreatedAt(Date createdAt) {
this.createdAt = createdAt;
}
@OneToMany(fetch = FetchType.LAZY, mappedBy = "employee")
public Set getSalaries() {
return this.salaries;
}
public void setSalaries(Set salaries) {
this.salaries = salaries;
}
Salary.java
@Entity
@Table(name = "salary", catalog = "employee")
public class Salary implements java.io.Serializable {
private Integer id;
private Employee employee;
private int basicPay;
private int takeHome;
public Salary() {
}
public Salary(Employee employee, int basicPay, int takeHome) {
this.employee = employee;
this.basicPay = basicPay;
this.takeHome = takeHome;
}
@Id
@GeneratedValue(strategy = IDENTITY)
@Column(name = "id", unique = true, nullable = false)
public Integer getId() {
return this.id;
}
public void setId(Integer id) {
this.id = id;
}
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "employee_id", nullable = false)
public Employee getEmployee() {
return this.employee;
}
public void setEmployee(Employee employee) {
this.employee = employee;
}
@Column(name = "basic_pay", nullable = false)
public int getBasicPay() {
return this.basicPay;
}
public void setBasicPay(int basicPay) {
this.basicPay = basicPay;
}
@Column(name = "take_home", nullable = false)
public int getTakeHome() {
return this.takeHome;
}
public void setTakeHome(int takeHome) {
this.takeHome = takeHome;
}
когда я открываю страницу, я получаю следующую ошибку
org.springframework.beans.factory.BeanCreationException: Error creating bean
with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/spring-servlet.xml]:
Invocation of init method failed; nested exception is org.hibernate.MappingException:
Could not determine type for: java.util.Set, at table: EMPLOYEE, for columns:
[org.hibernate.mapping.Column(salaries)]
Что-то не так в моем модальном классе
Помощь высоко ценится,
Спасибо,
VKS