java-tutorials/hibernate5/src/test/java/com/baeldung/hibernate/CustomClassIntegrationTest.java

76 lines
3.0 KiB
Java
Raw Normal View History

2018-09-04 00:01:25 +01:00
package com.baeldung.hibernate;
2018-09-05 17:27:25 +01:00
import static org.junit.jupiter.api.Assertions.assertEquals;
2018-09-04 00:01:25 +01:00
import java.io.IOException;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.query.Query;
2018-09-05 17:27:25 +01:00
import org.hibernate.transform.Transformers;
2018-09-05 00:13:08 +01:00
import org.junit.jupiter.api.BeforeEach;
2018-09-04 00:01:25 +01:00
import org.junit.jupiter.api.Test;
2018-09-05 17:27:25 +01:00
import com.baeldung.hibernate.entities.Department;
import com.baeldung.hibernate.entities.Manager;
2018-09-05 00:13:08 +01:00
import com.baeldung.hibernate.pojo.Result;
2018-09-04 00:01:25 +01:00
class CustomClassIntegrationTest {
private Session session;
private Transaction transaction;
2018-09-05 00:13:08 +01:00
@BeforeEach
2018-09-04 00:01:25 +01:00
public void setUp() throws IOException {
session = HibernateUtil.getSessionFactory().openSession();
transaction = session.beginTransaction();
2018-09-05 17:27:25 +01:00
session.createNativeQuery("delete from manager").executeUpdate();
session.createNativeQuery("delete from department").executeUpdate();
Department department = new Department("Sales");
Manager employee = new Manager("John Smith", "001", department);
session.persist(department);
session.persist(employee);
2018-09-04 00:01:25 +01:00
transaction.commit();
2018-09-05 00:13:08 +01:00
transaction = session.beginTransaction();
2018-09-04 00:01:25 +01:00
}
@Test
2018-09-05 17:27:25 +01:00
public void whenAllManagersAreSelected_ThenObjectGraphIsReturned() {
Query<Manager> query = session.createQuery("from com.baeldung.hibernate.entities.Manager");
List<Manager> managers = query.list();
Manager manager = managers.get(0);
assertEquals("John Smith", manager.getName());
assertEquals("Sales", manager.getDepartment().getName());
}
@Test
public void whenIndividualPropertiesAreSelected_ThenObjectArrayIsReturned() {
Query query = session.createQuery("select m.name, m.department.name from com.baeldung.hibernate.entities.Manager m");
List managers = query.list();
Object[] manager = (Object[]) managers.get(0);
assertEquals("John Smith", manager[0]);
assertEquals("Sales", manager[1]);
}
@Test
public void whenResultConstructorInSelect_ThenListOfResultIsReturned() {
Query<Result> query = session.createQuery("select new com.baeldung.hibernate.pojo.Result(m.name, m.department.name) from Manager m");
List<Result> results = query.list();
Result result = results.get(0);
assertEquals("John Smith", result.getEmployeeName());
assertEquals("Sales", result.getDepartmentName());
2018-09-04 00:01:25 +01:00
}
2018-09-05 00:13:08 +01:00
@Test
2018-09-05 17:27:25 +01:00
public void whenResultTransformerOnQuery_ThenListOfResultIsReturned() {
Query query = session.createQuery("select m.name as employeeName, m.department.name as departmentName from com.baeldung.hibernate.entities.Manager m");
query.setResultTransformer(Transformers.aliasToBean(Result.class));
List<Result> results = query.list();
Result result = results.get(0);
assertEquals("John Smith", result.getEmployeeName());
assertEquals("Sales", result.getDepartmentName());
2018-09-05 00:13:08 +01:00
}
2018-09-04 00:01:25 +01:00
}