У меня есть две таблицы Employee и Департамент, как показано ниже:Как получить столбцы из двух таблиц с использованием присоединиться спячки
import java.sql.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
@Entity
@Table(name="EMPLOYEE")
public class Employee {
@Id
@GeneratedValue
@Column(name="employee_id")
private Long employeeId;
@Column(name="firstname")
private String firstname;
@Column(name="lastname")
private String lastname;
@Column(name="birth_date")
private Date birthDate;
@Column(name="cell_phone")
private String cellphone;
@ManyToOne
@JoinColumn(name="department_id")
private Department department;
public Employee() {
}
public Employee(String firstname, String lastname, String phone) {
this.firstname = firstname;
this.lastname = lastname;
this.birthDate = new Date(System.currentTimeMillis());
this.cellphone = phone;
}
// Getter and Setter methods
}
и
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
@Entity
@Table(name="DEPARTMENT")
public class Department {
@Id
@GeneratedValue
@Column(name="DEPARTMENT_ID")
private Long departmentId;
@Column(name="DEPT_NAME")
private String departmentName;
@OneToMany(mappedBy="department")
private Set<Employee> employees;
// Getter and Setter methods
}
Таблицы выглядеть примерно так:
Теперь я хочу получить Employee с фамилией Mayers и Depar как продажа.
Так я думал, что делать присоединиться и ниже запрос HQL я писал:
String hql=" select e.employeeId, e.firstName from Employee E join Department D on E.department.departmentId = D.departmentId where e.lastName= :param1 and d.departmentName= :param2"
query.setParameterList("parm1", "Mayers");
query.setParameterList("parm2", "sales"));
Я получаю исключение, говорящее путь ожидаемый для соединения. Я попытался дать полное имя com.myexample.Department Затем я получил узел точки без левой стороны. Можете ли вы, ребята, указать мне в правильном направлении.
HQL! = SQL. http://docs.jboss.org/hibernate/core/4.3/manual/en-US/html/ch16.html#queryhql-joins –