Я хочу получить данные от стандартных сотрудников БД MySQL только из двух таблиц:
EMPLOYEES {
EMP_NO, -- PK
BIRTH_DATE,
....
}
TITLES {
EMP_NO, -- PK, and FK to EMPLOYEES
TITLE, -- PK
FROM_DATE, -- PK
TO_DATE,
....
}
Это ключ многих столбцов:
@Embeddable
public class TitleId implements Serializable {
@Column(name = "emp_no")
private long empNumber;
@Column(name = "title")
private String title;
@Column(name = "from_date")
private java.sql.Date fromDate;
// constructor, hascode, setter, getter
// ................
}
А есть сущности:
Первая сущность
@Entity(name = "Title")
@Table(name = "titles")
public class Title implements Serializable {
@EmbeddedId
private TitleId titleId;
@Column(name = "to_date")
private java.sql.Date toDate;
@OneToMany(mappedBy = "title")
private List<Employee> employees = new ArrayList<>();
// constructor, setter, getter
}
Вторая сущность
@Entity
@Table(name = "employees")
public class Employee {
@Id
@Column(name = "emp_no")
private long empNo;
@ManyToOne(optional = false)
@JoinColumn(name = "emp_no", insertable = false, updatable = false)
private Title title;
// setter, getter, constructor, other coluns
}
И EmployeeDao:
List employees = session.createQuery("FROM Employee").list();
for (Iterator iterator = employees.iterator(); iterator.hasNext();){
Employee employee = (Employee) iterator.next();
System.out.print("First Name: " + employee.getFirstName());
System.out.print(" Last Name: " + employee.getLastName());
}
И когда я пытаюсь получить эти ДАННЫЕ, появляетсяследующее исключение
AnnotationException: A Foreign key refering dayHibernate.Title from dayHibernate.Employee has the wrong number of column. should be 3
Как получить данные из этих двух таблиц и избежать исключения?помоги мне пожалуйста