diff --git a/2023-09/spring-11-jpql/jpql-class-work/jpql-exercise/src/test/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpaTest.java b/2023-09/spring-11-jpql/jpql-class-work/jpql-exercise/src/test/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpaTest.java index acbc6261..1762c14a 100644 --- a/2023-09/spring-11-jpql/jpql-class-work/jpql-exercise/src/test/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpaTest.java +++ b/2023-09/spring-11-jpql/jpql-class-work/jpql-exercise/src/test/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpaTest.java @@ -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); diff --git a/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-01/src/main/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpa.java b/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-01/src/main/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpa.java index c46b3489..c9683ed7 100644 --- a/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-01/src/main/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpa.java +++ b/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-01/src/main/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpa.java @@ -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 diff --git a/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-01/src/test/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpaTest.java b/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-01/src/test/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpaTest.java index acbc6261..1762c14a 100644 --- a/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-01/src/test/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpaTest.java +++ b/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-01/src/test/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpaTest.java @@ -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); diff --git a/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-02/src/main/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpa.java b/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-02/src/main/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpa.java index ebc0de95..8c8802e8 100644 --- a/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-02/src/main/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpa.java +++ b/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-02/src/main/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpa.java @@ -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 diff --git a/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-02/src/test/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpaTest.java b/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-02/src/test/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpaTest.java index acbc6261..1762c14a 100644 --- a/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-02/src/test/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpaTest.java +++ b/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-02/src/test/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpaTest.java @@ -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); diff --git a/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-03/src/main/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpa.java b/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-03/src/main/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpa.java index e5fdc38c..2fed983b 100644 --- a/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-03/src/main/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpa.java +++ b/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-03/src/main/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpa.java @@ -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 diff --git a/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-03/src/test/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpaTest.java b/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-03/src/test/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpaTest.java index acbc6261..1762c14a 100644 --- a/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-03/src/test/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpaTest.java +++ b/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-03/src/test/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpaTest.java @@ -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); diff --git a/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-04/src/main/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpa.java b/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-04/src/main/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpa.java index 275e659f..aeb01d0e 100644 --- a/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-04/src/main/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpa.java +++ b/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-04/src/main/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpa.java @@ -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 diff --git a/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-04/src/test/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpaTest.java b/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-04/src/test/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpaTest.java index c78cffc2..ef3e7e4e 100644 --- a/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-04/src/test/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpaTest.java +++ b/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-04/src/test/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpaTest.java @@ -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); diff --git a/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-05/src/main/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpa.java b/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-05/src/main/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpa.java index dad476d1..89714476 100644 --- a/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-05/src/main/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpa.java +++ b/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-05/src/main/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpa.java @@ -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 findAll() { EntityGraph entityGraph = em.getEntityGraph("otus-student-avatars-entity-graph"); - TypedQuery query = em.createQuery("select distinct s from OtusStudent s left join fetch s.emails", OtusStudent.class); + TypedQuery query = em.createQuery("select distinct s from OtusStudent s " + + "left join fetch s.emails", OtusStudent.class); query.setHint(FETCH.getKey(), entityGraph); return query.getResultList(); } diff --git a/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-05/src/test/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpaTest.java b/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-05/src/test/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpaTest.java index 26285f75..bf2a3dad 100644 --- a/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-05/src/test/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpaTest.java +++ b/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-05/src/test/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpaTest.java @@ -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); diff --git a/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-06/src/main/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpa.java b/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-06/src/main/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpa.java index dad476d1..89714476 100644 --- a/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-06/src/main/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpa.java +++ b/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-06/src/main/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpa.java @@ -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 findAll() { EntityGraph entityGraph = em.getEntityGraph("otus-student-avatars-entity-graph"); - TypedQuery query = em.createQuery("select distinct s from OtusStudent s left join fetch s.emails", OtusStudent.class); + TypedQuery query = em.createQuery("select distinct s from OtusStudent s " + + "left join fetch s.emails", OtusStudent.class); query.setHint(FETCH.getKey(), entityGraph); return query.getResultList(); } diff --git a/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-06/src/test/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpaTest.java b/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-06/src/test/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpaTest.java index 6f08f3f1..d856de06 100644 --- a/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-06/src/test/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpaTest.java +++ b/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-06/src/test/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpaTest.java @@ -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); diff --git a/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-06/src/test/resources/application.yml b/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-06/src/test/resources/application.yml index 7d216f89..02f7edee 100644 --- a/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-06/src/test/resources/application.yml +++ b/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-06/src/test/resources/application.yml @@ -15,6 +15,10 @@ spring: #show-sql: true + properties: + hibernate: + format_sql: true + logging: level: ROOT: ERROR \ No newline at end of file diff --git a/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-final/src/main/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpa.java b/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-final/src/main/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpa.java index dad476d1..17080bb7 100644 --- a/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-final/src/main/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpa.java +++ b/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-final/src/main/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpa.java @@ -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 diff --git a/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-final/src/test/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpaTest.java b/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-final/src/test/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpaTest.java index b7e422c1..d1a62bd2 100644 --- a/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-final/src/test/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpaTest.java +++ b/2023-09/spring-11-jpql/jpql-class-work/jpql-solution-final/src/test/java/ru/otus/example/ormdemo/repositories/OtusStudentRepositoryJpaTest.java @@ -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);