āļāļēāļāđāļāļŦāļāđāļ§āļĒāļāļ§āļēāļĄāļāļģāđāļĨāļ°āļāļēāļĢāļāļāļŠāļāļ
āđāļĨāļ°āļāļāļāļāļĩāđāļāļĩāđāļāđāļēāļŠāļāđāļāļāļĩāđāļŠāļļāļ āđāļĄāļ·āđāļāļāļāļŠāļāļāļĢāļŦāļąāļŠ Hibernate āļāđāļāļĒāļāļĢāļąāđāļāļāļĩāđāļāļļāļāđāļĄāđāļāđāļāļāļāļēāļĢāļāļģāļāļēāļāļāļąāļāļāļēāļāļāļĢāļīāļ āđāļāđāļāļąāļāđāļāļĢāļāļĢāđāļēāļāļāļēāļāļāļĢāļ°āđāļ āļāļāļĩāđāđāļāđāļāļąāļāļāđāļāļąāļāļāļēāļĢāļāļģāļāļēāļāļāļąāđāļāļāđāļģ
āļāļļāļāļāļķāļāļ āļēāļāđāļāļĢāļāļāļĩāđāđāļāđāļĄāļēāļāļĢāļāļēāļ SQL Server āļŠāđāļ§āļāđāļŦāļāđāđāļāđāļŦāļĢāļ·āļāđāļĄāđ āļāļąāļāđāļĄāđ. āļāļĒāđāļēāļāđāļĢāļāđāļāļēāļĄ āļāļēāļāļāđāļāļĄāļđāļĨāđāļāļŦāļāđāļ§āļĒāļāļ§āļēāļĄāļāļģāļāļąāđāļāļĒāļāļāđāļĒāļĩāđāļĒāļĄāļĄāļēāļ āļĄāļąāļāļāļģāļāļēāļāļāļĢāļ°āļĄāļēāļāļāļĩāđ:
- āđāļāđāļĄāļāļāļ @BeforeAll āđāļĢāļēāđāļĢāļīāđāļĄāļāđāļāļāļēāļĢāđāļāļ·āđāļāļĄāļāđāļāļāļēāļāļāđāļāļĄāļđāļĨāđāļāļŦāļāđāļ§āļĒāļāļ§āļēāļĄāļāļģ
- āđāļāđāļĄāļāļāļ @BeforeEach āđāļĢāļēāđāļāđāļĢāļąāļāđāļāļŠāļāļąāļāđāļĨāļ°āđāļāļīāļāļāļļāļĢāļāļĢāļĢāļĄ
- āđāļāđāļĄāļāļāļ @Test āđāļĢāļēāļāļģāļāļēāļāļāļąāļāđāļāļŠāļāļąāļāđāļĨāļ°āļāļļāļĢāļāļĢāļĢāļĄāļāļąāļāļāļļāļāļąāļ
- āđāļāđāļĄāļāļāļ @AfterEach āđāļĢāļēāļāļģāļāļļāļĢāļāļĢāļĢāļĄ
- āđāļĨāļ°āļŠāļļāļāļāđāļēāļĒ āđāļāđāļĄāļāļāļ AfterAll āđāļĢāļēāļāļīāļāļāļēāļĢāđāļāļ·āđāļāļĄāļāđāļāļāļąāļāļāļēāļāļāđāļāļĄāļđāļĨ
āļāļĩāđāļāļ·āļāļĨāļąāļāļĐāļāļ°āļāļāļāļāļēāļĢāđāļāļĢāļĩāļĒāļĄāļāļąāļ§āļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļāļāļŠāļāļ:
@Test
public class HelloTest {
private static SessionFactory sessionFactory = null;
private Session session = null;
@BeforeAll
static void setup(){
try {
StandardServiceRegistry standardRegistry = new StandardServiceRegistryBuilder()
.configure("hibernate-test.cfg.xml").build();
Metadata metadata = new MetadataSources(standardRegistry)
.addAnnotatedClass(Employee.class)
.getMetadataBuilder()
.build();
sessionFactory = metadata.getSessionFactoryBuilder().build();
} catch (Throwable ex) {
throw new ExceptionInInitializerError(ex);
}
}
@BeforeEach
void setupThis(){
session = sessionFactory.openSession();
session.beginTransaction();
}
@AfterEach
void tearThis(){
session.getTransaction().commit();
}
@AfterAll
static void tear(){
sessionFactory.close();
}
āđāļĨāļ°āļāļĩāđāļāļ·āļāļĨāļąāļāļĐāļāļ°āļāļāļāļāļēāļĢāļāļāļŠāļāļāļāđāļ§āļĒāļāļēāļĢāļāļģāļāļēāļāļāļāļ Hibernate:
@Test
public class HelloTest {
@Test
void createSessionFactoryWithXML() {
Employee emp = new Employee();
emp.setEmail("demo-user@mail.com");
emp.setFirstName("demo");
emp.setLastName("user");
Assertions.assertNull(emp.getEmployeeId());
session.persist(emp);
Assertions.assertNotNull(emp.getEmployeeId());
}
}
āļāđāļāļĄāļđāļĨāļāļēāļĢāļāļāļŠāļāļ
āļāļļāļāļĒāļąāļāļŠāļēāļĄāļēāļĢāļāđāļāļīāļĄāļāļēāļāļāđāļāļĄāļđāļĨāļāļāļŠāļāļāļāļāļāļāļļāļāļāđāļ§āļĒāļāđāļāļĄāļđāļĨāļāļēāļĢāļāļāļŠāļāļ
āđāļāļĒāļāļāļāļīāļāļ°āļĄāļĩāļāļēāļĢāļŠāļĢāđāļēāļāđāļāļĨāđ sql āļŠāļāļāđāļāļĨāđāļŠāļģāļŦāļĢāļąāļāļŠāļīāđāļāļāļĩāđ:
- schema.sql āļĄāļĩāļŠāļāļĢāļīāļāļāđāļāļĩāđāļŠāļĢāđāļēāļāļāļēāļĢāļēāļāđāļāļāļēāļāļāđāļāļĄāļđāļĨ
- test-data.sql āļĄāļĩāļŠāļāļĢāļīāļāļāđāļāļĩāđāđāļāļīāļĄāļāļēāļĢāļēāļāļāđāļ§āļĒāļāđāļāļĄāļđāļĨāļāļāļŠāļāļ
āđāļāļĒāļāļāļāļīāļāļēāļĢāļŠāļĢāđāļēāļāļāļēāļĢāļēāļāđāļĨāļ°āļāđāļāļĄāļđāļĨāļāļēāļĢāļāļāļŠāļāļāļāļ°āđāļĒāļāļāļāļāđāļāđāļāđāļāļĨāđāļāđāļēāļāđ āđāļāļ·āđāļāļāļāļēāļāļāļĨāļļāđāļĄāļāđāļāļĄāļđāļĨāļāļēāļĢāļāļāļŠāļāļāļāļāļāļāļāđāļāļāļŠāļģāļŦāļĢāļąāļāļāļĨāļļāđāļĄāļāļēāļĢāļāļāļŠāļāļāļāđāļēāļāđ āļĄāļąāļāļāļ°āļāļĢāļēāļāļāļāļķāđāļāđāļŠāļĄāļ
āļāļēāļĢāđāļĢāļĩāļĒāļāđāļāđāļāļēāļāđāļāļĨāđāđāļŦāļĨāđāļēāļāļĩāđāļĄāļĩāļĨāļąāļāļĐāļāļ°āļāļąāļāļāļĩāđ:
void runSqlScriptFile(String filePath){
String sqlScript = new String( Files.readAllBytes(Paths.get(filePath)) );
Session session = sessionFactory.openSession();
Query query = session.createNativeQuery("BEGIN " + sqlScript + " END;");
query.executeUpdate()
}
āđāļĨāļ° āļ§āļīāļāļĩ āļāļēāļĢāļāļąāđāļāļāđāļē āļāļāļāļāļļāļ āļāļ°āđāļāļĨāļĩāđāļĒāļāđāļāđāļĨāđāļāļāđāļāļĒ:
@BeforeAll
static void setup(){
try {
StandardServiceRegistry standardRegistry = new StandardServiceRegistryBuilder()
.configure("hibernate-test.cfg.xml").build();
Metadata metadata = new MetadataSources(standardRegistry)
.addAnnotatedClass(Employee.class)
.getMetadataBuilder()
.build();
sessionFactory = metadata.getSessionFactoryBuilder().build();
runSqlScriptFile(âscema.sqlâ);
runSqlScriptFile(âtest-data.sqlâ);
} catch (Throwable ex) {
throw new ExceptionInInitializerError(ex);
}
}