Jak mogę zrobić to zdanie SQL w Hibernate? Chciałbym użyć Hibernate do tworzenia zapytań, a nie tworzenia bazy danych.HQL Hibernate INNER DOŁĄCZ
SELECT * FROM Employee e INNER JOIN Team t ON e.Id_team=t.Id_team
stworzyłem klas encji w 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
Próbowałem zbudować kwerendę wybierającą działa na wiele sposobów, ale nadal nie działa.
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();
Może coś jest nie tak z podmiotami?
Jaki jest błąd? –
po dodaniu t.Id na końcu zapytania, ale w jednostce zespołu jest to id_team. Czy mógłbyś zmienić to na t.id_team –
niepoprawnie utworzyłeś klasy enity. Myślę, że musisz przepisać i używać takich konstrukcji, jak wiele-do-wielu, jeden-do-jednego, czy coś w tym stylu, –