Làm thế nào tôi có thể làm câu SQL này trong Hibernate? Tôi muốn sử dụng Hibernate để tạo truy vấn, không tạo cơ sở dữ liệu.HQL Hibernate INNER JOIN
SELECT * FROM Employee e INNER JOIN Team t ON e.Id_team=t.Id_team
Tôi tạo ra các lớp thực thể trong SQLServer2008,
@Entity
@Table(name="EMPLOYEE")
public class Employee
{
@Id @GeneratedValue
@Column(name="ID_EMPLOYEE")
private int id_employee;
@Column(name="SURNAME")
private String surname;
@Column(name="FIRSTNAME")
private String firstname;
@Column(name="ID_PROFESSION")
private int id_profession;
@Column(name="ID_BOSS")
private int id_boss;
@Column(name="HIRED_DATE")
private Date hired;
@Column(name="SALARY")
private double salary;
@Column(name="SALARY_ADD")
private double salary_add;
@Column(name="ID_TEAM")
private int id_team;
//set and get
@Entity
@Table(name="TEAM")
public class Team
{
@Id @GeneratedValue
@Column(name="ID_TEAM")
private int id_team;
@Column(name="TEAMNAME")
private String teamname;
@Column(name="ADDRESS")
private String address;
//set and get
Tôi cố gắng để xây dựng làm việc chọn truy vấn bằng nhiều cách nhưng nó vẫn không hoạt động.
SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
Session session = sessionFactory.openSession();
session.beginTransaction();
String select = "FROM Employee e INNER JOIN Team t ON e.Id_team=t.Id_team";
Query query = session.createQuery(select);
List elist = query.list();
session.getTransaction().commit();
session.close();
Có lẽ sth là sai với thực thể?
Lỗi là gì? –
theo cách bạn đã thêm t.Id ở cuối truy vấn, nhưng trong thực thể nhóm của bạn, nó là id_team. Bạn có thể thay đổi nó thành t.id_team –
bạn tạo không chính xác các lớp enity không. Tôi nghĩ rằng bạn cần phải viết lại và sử dụng các công trình như nhiều người, một-một hoặc một cái gì đó như vậy –