mirror of
https://github.com/OtusTeam/Spring.git
synced 2026-05-30 10:50:42 +00:00
2023-09 spring-11-jpql small fix
This commit is contained in:
+1
-1
@@ -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);
|
||||
|
||||
+3
-3
@@ -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
|
||||
|
||||
+1
-1
@@ -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);
|
||||
|
||||
+2
-3
@@ -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
|
||||
|
||||
+1
-1
@@ -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);
|
||||
|
||||
+2
-3
@@ -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
|
||||
|
||||
+1
-1
@@ -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);
|
||||
|
||||
+2
-3
@@ -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
|
||||
|
||||
+1
-1
@@ -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);
|
||||
|
||||
+4
-4
@@ -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();
|
||||
}
|
||||
|
||||
+1
-1
@@ -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);
|
||||
|
||||
+4
-4
@@ -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();
|
||||
}
|
||||
|
||||
+1
-1
@@ -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);
|
||||
|
||||
+4
@@ -15,6 +15,10 @@ spring:
|
||||
|
||||
#show-sql: true
|
||||
|
||||
properties:
|
||||
hibernate:
|
||||
format_sql: true
|
||||
|
||||
logging:
|
||||
level:
|
||||
ROOT: ERROR
|
||||
+2
-3
@@ -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
|
||||
|
||||
+3
-3
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user