Skip to content

Commit

Permalink
#80 Fix build issue on Win OS
Browse files Browse the repository at this point in the history
  • Loading branch information
andrei-punko committed May 14, 2024
1 parent efc4e90 commit f6296f8
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 27 deletions.
9 changes: 8 additions & 1 deletion hibernate-mappings/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
<artifactId>hibernate-mappings</artifactId>

<properties>
<mysql.version>8.0.30</mysql.version>
<mysql.version>8.0.28</mysql.version>
</properties>

<build>
Expand Down Expand Up @@ -75,6 +75,8 @@
<url>jdbc:mysql://127.0.0.1:3306/db?allowPublicKeyRetrieval=true&amp;useSSL=false</url>
<user>root</user>
<password>some_password</password>
<encoding>UTF-8</encoding>
<cleanDisabled>false</cleanDisabled>
<locations>
<location>db_migration</location>
</locations>
Expand Down Expand Up @@ -133,6 +135,11 @@
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-mysql</artifactId>
<version>${flyway-maven-plugin.version}</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
Expand Down
66 changes: 40 additions & 26 deletions hibernate-mappings/src/test/java/by/andd3dfx/HibernateMainIT.java
Original file line number Diff line number Diff line change
@@ -1,54 +1,68 @@
package by.andd3dfx;

import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;

import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.Query;

import by.andd3dfx.model.library.Address;
import by.andd3dfx.model.library.Author;
import by.andd3dfx.model.library.Book;
import by.andd3dfx.model.library.Publisher;
import by.andd3dfx.model.shop.OneSizeItem;
import by.andd3dfx.model.shop.ThreeSizeItem;
import by.andd3dfx.model.shop.TwoSizeItem;
import by.andd3dfx.model.shop.ZeroSizeItem;
import lombok.SneakyThrows;
import org.hibernate.Session;
import org.hibernate.cfg.Configuration;
import org.junit.Test;

import javax.persistence.EntityManager;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;

import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;

public class HibernateMainIT {

@SneakyThrows
@Test
public void checkRecordsExistence() {
public void checkRecordsAmount() {
try (var sessionFactory = new Configuration().configure().buildSessionFactory()) {
try (var session = sessionFactory.openSession()) {
getFromDbAndCheck(session, Book.class, 4);
getFromDbAndCheck(session, Address.class, 2);
getFromDbAndCheck(session, Author.class, 3);
getFromDbAndCheck(session, Publisher.class, 2);

EntityManager entityManager = session.getEntityManagerFactory().createEntityManager();
getFromDbAndCheck(entityManager, "ZeroSizeItem", 1);
getFromDbAndCheck(entityManager, "OneSizeItem", 1);
getFromDbAndCheck(entityManager, "TwoSizeItem", 2);
getFromDbAndCheck(entityManager, "ThreeSizeItem", 1);
var emFactory = session.getEntityManagerFactory();
var em = emFactory.createEntityManager();

getFromDbAndCheck(em, Book.class, 4);
getFromDbAndCheck(em, Address.class, 2);
getFromDbAndCheck(em, Author.class, 3);
getFromDbAndCheck(em, Publisher.class, 2);

getFromDbAndCheck_ForEntityWithDiscriminator(em, ZeroSizeItem.class, 1);
getFromDbAndCheck_ForEntityWithDiscriminator(em, OneSizeItem.class, 1);
getFromDbAndCheck_ForEntityWithDiscriminator(em, TwoSizeItem.class, 2);
getFromDbAndCheck_ForEntityWithDiscriminator(em, ThreeSizeItem.class, 1);
}
}
}

private void getFromDbAndCheck(Session session, Class clazz, int expectedItemsCount) {
List items = session.createCriteria(clazz).list();
System.out.println("Retrieved next items: " + items);
private <T> void getFromDbAndCheck(EntityManager em, Class<T> clazz, int expectedItemsCount) {
CriteriaBuilder builder = em.getCriteriaBuilder();
CriteriaQuery<T> query = builder.createQuery(clazz);
Root<T> variableRoot = query.from(clazz);
query.select(variableRoot);
var items = em.createQuery(query).getResultList();

System.out.println("Retrieved next items: " + items);
assertThat("Wrong items count", items.size(), is(expectedItemsCount));
}

private void getFromDbAndCheck(EntityManager entityManager, String entityName, int expectedItemsCount) {
Query query = entityManager.createQuery("SELECT c FROM " + entityName + " c");
List items = query.getResultList();
System.out.println("Retrieved next items: " + items);
private <T> void getFromDbAndCheck_ForEntityWithDiscriminator(EntityManager em, Class<T> clazz, int expectedItemsCount) {
CriteriaBuilder builder = em.getCriteriaBuilder();
CriteriaQuery<T> query = builder.createQuery(clazz);
Root<T> variableRoot = query.from(clazz);
query.where(builder.equal(variableRoot.type(), clazz));
query.select(variableRoot);
var items = em.createQuery(query).getResultList();

System.out.println("Retrieved next items: " + items);
assertThat("Wrong items count", items.size(), is(expectedItemsCount));
}
}

0 comments on commit f6296f8

Please sign in to comment.