diff --git a/P/Sda1/Jpa/LectureOperations/src/main/java/jpaintro/university/SearchByTitleAndByNumber.java b/P/Sda1/Jpa/LectureOperations/src/main/java/jpaintro/university/SearchByTitleAndByNumber.java index f1d937211ad7843f85e78833ca52fe1190b4b359..a8b4f071e63ada90c7e9dbfcd103637733ea80ff 100644 --- a/P/Sda1/Jpa/LectureOperations/src/main/java/jpaintro/university/SearchByTitleAndByNumber.java +++ b/P/Sda1/Jpa/LectureOperations/src/main/java/jpaintro/university/SearchByTitleAndByNumber.java @@ -17,45 +17,43 @@ import jpaintro.university.model.Lecture; import jpaintro.university.model.Lecture_; public class SearchByTitleAndByNumber { - static final Logger log = LogManager.getLogger(SearchByTitleAndByNumber.class); + static final Logger log = LogManager.getLogger(SearchByTitleAndByNumber.class); /** - * This refers to a corresponding element <persistence-unit name = "strategy_none" > - * in META-INF/persistence.xml preserving the relational database schema. + * Preserving relational schema. */ - static public final String PERSISTENCE_UNIT_NO_CHANGE = "strategy_none"; - /** - * @param args Unused - */ - public static void main( String[] args ) { - - - final EntityManagerFactory factory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NO_CHANGE); - final EntityManager em = factory.createEntityManager(); - final CriteriaBuilder builder = factory.getCriteriaBuilder(); - - log.info("Read lectures starting with letter 'S%'"); - em.getTransaction().begin(); - - - final CriteriaQuery<Lecture> criteria = builder.createQuery( Lecture.class ); - final Root<Lecture> lectureRoot = criteria.from( Lecture.class ); - criteria.select(lectureRoot ); - - criteria.where(builder.and( - builder.like(lectureRoot.get(Lecture_.title), "S%" ), - builder.greaterThan(lectureRoot.get(Lecture_.courseNumber), 2000) - )); - final List<Lecture> lectures = em.createQuery(criteria).getResultList(); - System.out.println("Retrieved " + lectures.size() + " lectures:"); - for (final Lecture lecture : lectures ) { - System.out.println(lecture); - } - em.getTransaction().commit(); - log.info("Read completed"); - - em.close(); - - factory.close(); - } + static public final String PERSISTENCE_UNIT_NO_CHANGE = "strategy_none"; + /** + * @param args Unused + */ + public static void main( String[] args ) { + + final EntityManagerFactory emFactory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NO_CHANGE); + + final EntityManager em = emFactory.createEntityManager(); + final CriteriaBuilder cb = emFactory.getCriteriaBuilder(); + + log.info("Read lectures starting with letter 'S%'"); + em.getTransaction().begin(); + + final CriteriaQuery<Lecture> criteria = cb.createQuery(Lecture.class); + final Root<Lecture> lectureRoot = criteria.from(Lecture.class); + + criteria.where( + cb.and( + cb.like(lectureRoot.get(Lecture_.title), "S%"), + cb.greaterThan(lectureRoot.get(Lecture_.courseNumber), 2000) + ) + ); + final List<Lecture> lectures = em.createQuery(criteria).getResultList(); + System.out.println("Retrieved " + lectures.size() + " lectures:"); + for (final Lecture lecture : lectures ) { + System.out.println(lecture); + } + em.getTransaction().commit(); + log.info("Read completed"); + + em.close(); + emFactory.close(); + } } \ No newline at end of file diff --git a/ws/Archetypes/mi-maven-archetype-jpa-hibernate/src/main/resources/archetype-resources/src/main/java/SearchByIcao.java b/ws/Archetypes/mi-maven-archetype-jpa-hibernate/src/main/resources/archetype-resources/src/main/java/SearchByIcao.java index 325c3d08adb54ea076af044bb08c475f07e8b1e0..69d1ab8b78a8d14d4acccb3824221e70425ad48a 100644 --- a/ws/Archetypes/mi-maven-archetype-jpa-hibernate/src/main/resources/archetype-resources/src/main/java/SearchByIcao.java +++ b/ws/Archetypes/mi-maven-archetype-jpa-hibernate/src/main/resources/archetype-resources/src/main/java/SearchByIcao.java @@ -17,7 +17,7 @@ import org.apache.logging.log4j.Logger; import ${package}.model.Airline; -import ${package}.model.Airline_; +import ${package}.model.Airline_; // See comment further below. public class SearchByIcao { static final Logger log = LogManager.getLogger(SearchByIcao.class); @@ -35,15 +35,14 @@ public class SearchByIcao { final EntityManagerFactory factory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME); final EntityManager em = factory.createEntityManager(); - final CriteriaBuilder builder = factory.getCriteriaBuilder(); + final CriteriaBuilder cb = factory.getCriteriaBuilder(); log.info("Read airlines by icao code"); em.getTransaction().begin(); - final CriteriaQuery<Airline> criteria = builder.createQuery( Airline.class ); + final CriteriaQuery<Airline> criteria = cb.createQuery( Airline.class ); final Root<Airline> airlineRoot = criteria.from( Airline.class ); - criteria.select( airlineRoot ); // The subsequent line of code requires "mvn generate-sources" or equivalent triggering the metamodel generator // when working in Eclipse. You may want to right click on your project root choosing @@ -52,7 +51,7 @@ public class SearchByIcao { // // This step is being required whenever changes to your model classes in mi.intro.jpastart.model happen. - criteria.where(builder.equal( airlineRoot.get( Airline_.icaoCode), "DLH" )); + criteria.where(cb.equal( airlineRoot.get( Airline_.icaoCode), "DLH" )); final List<Airline> airlines = em.createQuery( criteria ).getResultList(); for (final Airline airline : airlines ) { System.out.println(airline);