2023-09 spring-11-jpql small fix

This commit is contained in:
stvort
2023-11-11 14:59:53 +04:00
parent c11ea43eeb
commit bf66febe0a
16 changed files with 33 additions and 33 deletions
@@ -62,7 +62,7 @@ class OtusStudentRepositoryJpaTest {
assertThat(students).isNotNull().hasSize(EXPECTED_NUMBER_OF_STUDENTS)
.allMatch(s -> !s.getName().equals(""))
.allMatch(s -> s.getCourses() != null && s.getCourses().size() > 0)
.allMatch(s -> s.getAvatar() != null)
.allMatch(s -> s.getAvatar().getPhotoUrl() != null)
.allMatch(s -> s.getEmails() != null && s.getEmails().size() > 0);
System.out.println("----------------------------------------------------------------------------------------------------------\n\n\n\n");
assertThat(sessionFactory.getStatistics().getPrepareStatementCount()).isEqualTo(EXPECTED_QUERIES_COUNT);
@@ -6,6 +6,7 @@ import ru.otus.example.ormdemo.models.OtusStudent;
import jakarta.persistence.EntityManager;
import jakarta.persistence.PersistenceContext;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
@@ -28,12 +29,11 @@ public class OtusStudentRepositoryJpa implements OtusStudentRepository {
@Override
public OtusStudent save(OtusStudent student) {
if (student.getId() <= 0) {
if (student.getId() == 0) {
em.persist(student);
return student;
} else {
return em.merge(student);
}
return em.merge(student);
}
@Override
@@ -62,7 +62,7 @@ class OtusStudentRepositoryJpaTest {
assertThat(students).isNotNull().hasSize(EXPECTED_NUMBER_OF_STUDENTS)
.allMatch(s -> !s.getName().equals(""))
.allMatch(s -> s.getCourses() != null && s.getCourses().size() > 0)
.allMatch(s -> s.getAvatar() != null)
.allMatch(s -> s.getAvatar().getPhotoUrl() != null)
.allMatch(s -> s.getEmails() != null && s.getEmails().size() > 0);
System.out.println("----------------------------------------------------------------------------------------------------------\n\n\n\n");
assertThat(sessionFactory.getStatistics().getPrepareStatementCount()).isEqualTo(EXPECTED_QUERIES_COUNT);
@@ -28,12 +28,11 @@ public class OtusStudentRepositoryJpa implements OtusStudentRepository {
@Override
public OtusStudent save(OtusStudent student) {
if (student.getId() <= 0) {
if (student.getId() == 0) {
em.persist(student);
return student;
} else {
return em.merge(student);
}
return em.merge(student);
}
@Override
@@ -62,7 +62,7 @@ class OtusStudentRepositoryJpaTest {
assertThat(students).isNotNull().hasSize(EXPECTED_NUMBER_OF_STUDENTS)
.allMatch(s -> !s.getName().equals(""))
.allMatch(s -> s.getCourses() != null && s.getCourses().size() > 0)
.allMatch(s -> s.getAvatar() != null)
.allMatch(s -> s.getAvatar().getPhotoUrl() != null)
.allMatch(s -> s.getEmails() != null && s.getEmails().size() > 0);
System.out.println("----------------------------------------------------------------------------------------------------------\n\n\n\n");
assertThat(sessionFactory.getStatistics().getPrepareStatementCount()).isEqualTo(EXPECTED_QUERIES_COUNT);
@@ -25,12 +25,11 @@ public class OtusStudentRepositoryJpa implements OtusStudentRepository {
@Override
public OtusStudent save(OtusStudent student) {
if (student.getId() <= 0) {
if (student.getId() == 0) {
em.persist(student);
return student;
} else {
return em.merge(student);
}
return em.merge(student);
}
@Override
@@ -62,7 +62,7 @@ class OtusStudentRepositoryJpaTest {
assertThat(students).isNotNull().hasSize(EXPECTED_NUMBER_OF_STUDENTS)
.allMatch(s -> !s.getName().equals(""))
.allMatch(s -> s.getCourses() != null && s.getCourses().size() > 0)
.allMatch(s -> s.getAvatar() != null)
.allMatch(s -> s.getAvatar().getPhotoUrl() != null)
.allMatch(s -> s.getEmails() != null && s.getEmails().size() > 0);
System.out.println("----------------------------------------------------------------------------------------------------------\n\n\n\n");
assertThat(sessionFactory.getStatistics().getPrepareStatementCount()).isEqualTo(EXPECTED_QUERIES_COUNT);
@@ -32,12 +32,11 @@ public class OtusStudentRepositoryJpa implements OtusStudentRepository {
@Override
public OtusStudent save(OtusStudent student) {
if (student.getId() <= 0) {
if (student.getId() == 0) {
em.persist(student);
return student;
} else {
return em.merge(student);
}
return em.merge(student);
}
@Override
@@ -50,7 +50,7 @@ class OtusStudentRepositoryJpaTest {
assertThat(students).isNotNull().hasSize(EXPECTED_NUMBER_OF_STUDENTS)
.allMatch(s -> !s.getName().equals(""))
.allMatch(s -> s.getCourses() != null && s.getCourses().size() > 0)
.allMatch(s -> s.getAvatar() != null)
.allMatch(s -> s.getAvatar().getPhotoUrl() != null)
.allMatch(s -> s.getEmails() != null && s.getEmails().size() > 0);
System.out.println("----------------------------------------------------------------------------------------------------------\n\n\n\n");
assertThat(sessionFactory.getStatistics().getPrepareStatementCount()).isEqualTo(EXPECTED_QUERIES_COUNT);
@@ -32,12 +32,11 @@ public class OtusStudentRepositoryJpa implements OtusStudentRepository {
@Override
public OtusStudent save(OtusStudent student) {
if (student.getId() <= 0) {
if (student.getId() == 0) {
em.persist(student);
return student;
} else {
return em.merge(student);
}
return em.merge(student);
}
@Override
@@ -48,7 +47,8 @@ public class OtusStudentRepositoryJpa implements OtusStudentRepository {
@Override
public List<OtusStudent> findAll() {
EntityGraph<?> entityGraph = em.getEntityGraph("otus-student-avatars-entity-graph");
TypedQuery<OtusStudent> query = em.createQuery("select distinct s from OtusStudent s left join fetch s.emails", OtusStudent.class);
TypedQuery<OtusStudent> query = em.createQuery("select distinct s from OtusStudent s " +
"left join fetch s.emails", OtusStudent.class);
query.setHint(FETCH.getKey(), entityGraph);
return query.getResultList();
}
@@ -50,7 +50,7 @@ class OtusStudentRepositoryJpaTest {
assertThat(students).isNotNull().hasSize(EXPECTED_NUMBER_OF_STUDENTS)
.allMatch(s -> !s.getName().equals(""))
.allMatch(s -> s.getCourses() != null && s.getCourses().size() > 0)
.allMatch(s -> s.getAvatar() != null)
.allMatch(s -> s.getAvatar().getPhotoUrl() != null)
.allMatch(s -> s.getEmails() != null && s.getEmails().size() > 0);
System.out.println("----------------------------------------------------------------------------------------------------------\n\n\n\n");
assertThat(sessionFactory.getStatistics().getPrepareStatementCount()).isEqualTo(EXPECTED_QUERIES_COUNT);
@@ -32,12 +32,11 @@ public class OtusStudentRepositoryJpa implements OtusStudentRepository {
@Override
public OtusStudent save(OtusStudent student) {
if (student.getId() <= 0) {
if (student.getId() == 0) {
em.persist(student);
return student;
} else {
return em.merge(student);
}
return em.merge(student);
}
@Override
@@ -48,7 +47,8 @@ public class OtusStudentRepositoryJpa implements OtusStudentRepository {
@Override
public List<OtusStudent> findAll() {
EntityGraph<?> entityGraph = em.getEntityGraph("otus-student-avatars-entity-graph");
TypedQuery<OtusStudent> query = em.createQuery("select distinct s from OtusStudent s left join fetch s.emails", OtusStudent.class);
TypedQuery<OtusStudent> query = em.createQuery("select distinct s from OtusStudent s " +
"left join fetch s.emails", OtusStudent.class);
query.setHint(FETCH.getKey(), entityGraph);
return query.getResultList();
}
@@ -50,7 +50,7 @@ class OtusStudentRepositoryJpaTest {
assertThat(students).isNotNull().hasSize(EXPECTED_NUMBER_OF_STUDENTS)
.allMatch(s -> !s.getName().equals(""))
.allMatch(s -> s.getCourses() != null && s.getCourses().size() > 0)
.allMatch(s -> s.getAvatar() != null)
.allMatch(s -> s.getAvatar().getPhotoUrl() != null)
.allMatch(s -> s.getEmails() != null && s.getEmails().size() > 0);
System.out.println("----------------------------------------------------------------------------------------------------------\n\n\n\n");
assertThat(sessionFactory.getStatistics().getPrepareStatementCount()).isEqualTo(EXPECTED_QUERIES_COUNT);
@@ -15,6 +15,10 @@ spring:
#show-sql: true
properties:
hibernate:
format_sql: true
logging:
level:
ROOT: ERROR
@@ -32,12 +32,11 @@ public class OtusStudentRepositoryJpa implements OtusStudentRepository {
@Override
public OtusStudent save(OtusStudent student) {
if (student.getId() <= 0) {
if (student.getId() == 0) {
em.persist(student);
return student;
} else {
return em.merge(student);
}
return em.merge(student);
}
@Override
@@ -58,7 +58,7 @@ class OtusStudentRepositoryJpaTest {
assertThat(students).isNotNull().hasSize(EXPECTED_NUMBER_OF_STUDENTS)
.allMatch(s -> !s.getName().equals(""))
.allMatch(s -> s.getCourses() != null && s.getCourses().size() > 0)
.allMatch(s -> s.getAvatar() != null)
.allMatch(s -> s.getAvatar().getPhotoUrl() != null)
.allMatch(s -> s.getEmails() != null && s.getEmails().size() > 0);
System.out.println("----------------------------------------------------------------------------------------------------------\n\n\n\n");
assertThat(sessionFactory.getStatistics().getPrepareStatementCount()).isEqualTo(EXPECTED_QUERIES_COUNT);
@@ -88,8 +88,8 @@ class OtusStudentRepositoryJpaTest {
var pagesCount = (long) Math.ceil(studentsCount * 1d / pageSize);
var query = em.getEntityManager().createQuery("select s from OtusStudent s ", OtusStudent.class);
// Так не будет offset + limit из-за того, что студент может занимать больше одной строки набора данных
// var query = em.getEntityManager().createQuery("select distinct s from OtusStudent s left join fetch s.courses c", OtusStudent.class);
//var query = em.getEntityManager().createQuery("select distinct s from OtusStudent s " +
// "left join fetch s.courses c", OtusStudent.class);
var students = query.setFirstResult(pageNum * pageSize).setMaxResults(pageSize).getResultList();
assertThat(pagesCount).isEqualTo(4);