From 2b82d56ded03411bef87bf2fabdd1188cb051873 Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Tue, 13 May 2025 16:00:45 +0200 Subject: [PATCH] Reformat code. Also, upgrade to Hibernate 7.0 CR1. --- jpa/aot-optimization/pom.xml | 2 +- .../example/springdata/aot/AotJpaApp.java | 7 +- .../main/java/example/springdata/aot/CLR.java | 139 +++++++++--------- .../java/example/springdata/aot/Post.java | 52 ++++--- .../java/example/springdata/aot/User.java | 121 +++++++-------- .../springdata/aot/UserRepository.java | 24 +-- .../src/main/resources/application.properties | 2 +- 7 files changed, 170 insertions(+), 177 deletions(-) diff --git a/jpa/aot-optimization/pom.xml b/jpa/aot-optimization/pom.xml index b72d3040..a744252e 100644 --- a/jpa/aot-optimization/pom.xml +++ b/jpa/aot-optimization/pom.xml @@ -14,7 +14,7 @@ UTF-8 - 7.0.0.Beta5 + 7.0.0.CR1 2025.1.0-SNAPSHOT diff --git a/jpa/aot-optimization/src/main/java/example/springdata/aot/AotJpaApp.java b/jpa/aot-optimization/src/main/java/example/springdata/aot/AotJpaApp.java index 14dfadba..66235ab8 100644 --- a/jpa/aot-optimization/src/main/java/example/springdata/aot/AotJpaApp.java +++ b/jpa/aot-optimization/src/main/java/example/springdata/aot/AotJpaApp.java @@ -24,7 +24,8 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class AotJpaApp { - public static void main(String[] args) { - SpringApplication.run(AotJpaApp.class, args); - } + public static void main(String[] args) { + SpringApplication.run(AotJpaApp.class, args); + } + } diff --git a/jpa/aot-optimization/src/main/java/example/springdata/aot/CLR.java b/jpa/aot-optimization/src/main/java/example/springdata/aot/CLR.java index aaa2ed51..8272939a 100644 --- a/jpa/aot-optimization/src/main/java/example/springdata/aot/CLR.java +++ b/jpa/aot-optimization/src/main/java/example/springdata/aot/CLR.java @@ -31,94 +31,95 @@ import org.springframework.stereotype.Component; @Component public class CLR implements CommandLineRunner { - @Autowired UserRepository repository; + @Autowired UserRepository repository; - @Override - public void run(String... args) throws Exception { + @Override + public void run(String... args) throws Exception { - User luke = new User("id-1", "luke"); - luke.setFirstname("Luke"); - luke.setLastname("Skywalker"); -// Post lukeP1 = new Post("I have a bad feeling about this."); -// em.persist(lukeP1); -// luke.setPosts(List.of(lukeP1)); + User luke = new User("id-1", "luke"); + luke.setFirstname("Luke"); + luke.setLastname("Skywalker"); + // Post lukeP1 = new Post("I have a bad feeling about this."); + // em.persist(lukeP1); + // luke.setPosts(List.of(lukeP1)); - User leia = new User("id-2", "leia"); - leia.setFirstname("Leia"); - leia.setLastname("Organa"); + User leia = new User("id-2", "leia"); + leia.setFirstname("Leia"); + leia.setLastname("Organa"); - User han = new User("id-3", "han"); - han.setFirstname("Han"); - han.setLastname("Solo"); -// Post hanP1 = new Post("It's the ship that made the Kessel Run in less than 12 Parsecs."); -// em.persist(hanP1); -// han.setPosts(List.of(hanP1)); + User han = new User("id-3", "han"); + han.setFirstname("Han"); + han.setLastname("Solo"); + // Post hanP1 = new Post("It's the ship that made the Kessel Run in less than 12 Parsecs."); + // em.persist(hanP1); + // han.setPosts(List.of(hanP1)); - User chewbacca = new User("id-4", "chewbacca"); - User yoda = new User("id-5", "yoda"); - Post yodaP1 = new Post("Do. Or do not. There is no try."); - Post yodaP2 = new Post("Decide you must, how to serve them best. If you leave now, help them you could; but you would destroy all for which they have fought, and suffered."); -// em.persist(yodaP1); -// em.persist(yodaP2); -// yoda.setPosts(List.of(yodaP1, yodaP2)); + User chewbacca = new User("id-4", "chewbacca"); + User yoda = new User("id-5", "yoda"); + Post yodaP1 = new Post("Do. Or do not. There is no try."); + Post yodaP2 = new Post( + "Decide you must, how to serve them best. If you leave now, help them you could; but you would destroy all for which they have fought, and suffered."); + // em.persist(yodaP1); + // em.persist(yodaP2); + // yoda.setPosts(List.of(yodaP1, yodaP2)); - User vader = new User("id-6", "vader"); - vader.setFirstname("Anakin"); - vader.setLastname("Skywalker"); -// Post vaderP1 = new Post("I am your father"); -// em.persist(vaderP1); -// vader.setPosts(List.of(vaderP1)); + User vader = new User("id-6", "vader"); + vader.setFirstname("Anakin"); + vader.setLastname("Skywalker"); + // Post vaderP1 = new Post("I am your father"); + // em.persist(vaderP1); + // vader.setPosts(List.of(vaderP1)); - User kylo = new User("id-7", "kylo"); - kylo.setFirstname("Ben"); - kylo.setLastname("Solo"); + User kylo = new User("id-7", "kylo"); + kylo.setFirstname("Ben"); + kylo.setLastname("Solo"); - repository.saveAll(List.of(luke, leia, han, chewbacca, yoda, vader, kylo)); + repository.saveAll(List.of(luke, leia, han, chewbacca, yoda, vader, kylo)); - System.out.println("------- annotated multi -------"); - System.out.println(repository.usersWithUsernamesStartingWith("l")); + System.out.println("------- annotated multi -------"); + System.out.println(repository.usersWithUsernamesStartingWith("l")); - System.out.println("------- derived single -------"); - System.out.println(repository.findUserByUsername("yoda")); + System.out.println("------- derived single -------"); + System.out.println(repository.findUserByUsername("yoda")); -// System.out.println("------- derived nested.path -------"); -// System.out.println(repository.findUserByPostsMessageLike("father")); + // System.out.println("------- derived nested.path -------"); + // System.out.println(repository.findUserByPostsMessageLike("father")); - System.out.println("------- derived optional -------"); - System.out.println(repository.findOptionalUserByUsername("yoda")); + System.out.println("------- derived optional -------"); + System.out.println(repository.findOptionalUserByUsername("yoda")); - System.out.println("------- derived count -------"); - Long count = repository.countUsersByLastnameLike("Sky"); - System.out.println("user count " + count); + System.out.println("------- derived count -------"); + Long count = repository.countUsersByLastnameLike("Sky"); + System.out.println("user count " + count); - System.out.println("------- derived exists -------"); - Boolean exists = repository.existsByUsername("vader"); - System.out.println("user exists " + exists); + System.out.println("------- derived exists -------"); + Boolean exists = repository.existsByUsername("vader"); + System.out.println("user exists " + exists); - System.out.println("------- derived multi -------"); - System.out.println(repository.findUserByLastnameStartingWith("Sky")); + System.out.println("------- derived multi -------"); + System.out.println(repository.findUserByLastnameStartingWith("Sky")); - System.out.println("------- derived sorted -------"); - System.out.println(repository.findUserByLastnameStartingWithOrderByFirstname("Sky")); + System.out.println("------- derived sorted -------"); + System.out.println(repository.findUserByLastnameStartingWithOrderByFirstname("Sky")); - System.out.println("------- derived page -------"); - Page page0 = repository.findUserByLastnameStartingWith("S", PageRequest.of(0, 2)); - System.out.println("page0: " + page0); - System.out.println("page0.content: " + page0.getContent()); + System.out.println("------- derived page -------"); + Page page0 = repository.findUserByLastnameStartingWith("S", PageRequest.of(0, 2)); + System.out.println("page0: " + page0); + System.out.println("page0.content: " + page0.getContent()); - Page page1 = repository.findUserByLastnameStartingWith("S", PageRequest.of(1, 2)); - System.out.println("page1: " + page1); - System.out.println("page1.content: " + page1.getContent()); + Page page1 = repository.findUserByLastnameStartingWith("S", PageRequest.of(1, 2)); + System.out.println("page1: " + page1); + System.out.println("page1.content: " + page1.getContent()); - System.out.println("------- derived slice -------"); - Slice slice0 = repository.findUserByUsernameAfter("luke", PageRequest.of(0, 2)); - System.out.println("slice0: " + slice0); - System.out.println("slice0.content: " + slice0.getContent()); + System.out.println("------- derived slice -------"); + Slice slice0 = repository.findUserByUsernameAfter("luke", PageRequest.of(0, 2)); + System.out.println("slice0: " + slice0); + System.out.println("slice0.content: " + slice0.getContent()); - System.out.println("------- derived top -------"); - System.out.println(repository.findTop2UsersByLastnameStartingWith("S")); + System.out.println("------- derived top -------"); + System.out.println(repository.findTop2UsersByLastnameStartingWith("S")); -// System.out.println("------- derived with fields -------"); -// System.out.println(repository.findJustUsernameBy()); - } + // System.out.println("------- derived with fields -------"); + // System.out.println(repository.findJustUsernameBy()); + } } diff --git a/jpa/aot-optimization/src/main/java/example/springdata/aot/Post.java b/jpa/aot-optimization/src/main/java/example/springdata/aot/Post.java index 5909cd1a..6c6e3e82 100644 --- a/jpa/aot-optimization/src/main/java/example/springdata/aot/Post.java +++ b/jpa/aot-optimization/src/main/java/example/springdata/aot/Post.java @@ -30,39 +30,37 @@ import java.util.Random; @Entity public class Post { - @Id - @GeneratedValue - private Long id; + @Id + @GeneratedValue private Long id; - private String message; - private Instant date; + private String message; + private Instant date; - public Post() { - } + public Post() {} - public Post(String message) { - this.message = message; - this.date = Instant.now().minus(new Random().nextLong(100), ChronoUnit.MINUTES); - } + public Post(String message) { + this.message = message; + this.date = Instant.now().minus(new Random().nextLong(100), ChronoUnit.MINUTES); + } - public String getMessage() { - return message; - } + public String getMessage() { + return message; + } - public void setMessage(String message) { - this.message = message; - } + public void setMessage(String message) { + this.message = message; + } - public Instant getDate() { - return date; - } + public Instant getDate() { + return date; + } - public void setDate(Instant date) { - this.date = date; - } + public void setDate(Instant date) { + this.date = date; + } - @Override - public String toString() { - return message; - } + @Override + public String toString() { + return message; + } } diff --git a/jpa/aot-optimization/src/main/java/example/springdata/aot/User.java b/jpa/aot-optimization/src/main/java/example/springdata/aot/User.java index 4f9f3357..b9c43ff0 100644 --- a/jpa/aot-optimization/src/main/java/example/springdata/aot/User.java +++ b/jpa/aot-optimization/src/main/java/example/springdata/aot/User.java @@ -28,85 +28,78 @@ import java.time.Instant; @Entity(name = "users") public class User { - @Id - private String id; - private String username; + @Id private String id; + private String username; - @Column(name = "first_name") String firstname; - @Column(name = "last_name") String lastname; + @Column(name = "first_name") String firstname; + @Column(name = "last_name") String lastname; -// @OneToMany -// private List posts; + // @OneToMany + // private List posts; - Instant registrationDate; - Instant lastSeen; + Instant registrationDate; + Instant lastSeen; - public User() { - } + public User() {} - public User(String id, String username) { - this.id = id; - this.username = username; - } + public User(String id, String username) { + this.id = id; + this.username = username; + } - public String getId() { - return id; - } + public String getId() { + return id; + } - public String getUsername() { - return username; - } + public String getUsername() { + return username; + } - public String getFirstname() { - return firstname; - } + public String getFirstname() { + return firstname; + } - public void setFirstname(String firstname) { - this.firstname = firstname; - } + public void setFirstname(String firstname) { + this.firstname = firstname; + } - public String getLastname() { - return lastname; - } + public String getLastname() { + return lastname; + } - public void setLastname(String lastname) { - this.lastname = lastname; - } + public void setLastname(String lastname) { + this.lastname = lastname; + } - public Instant getRegistrationDate() { - return registrationDate; - } + public Instant getRegistrationDate() { + return registrationDate; + } - public void setRegistrationDate(Instant registrationDate) { - this.registrationDate = registrationDate; - } + public void setRegistrationDate(Instant registrationDate) { + this.registrationDate = registrationDate; + } - public Instant getLastSeen() { - return lastSeen; - } + public Instant getLastSeen() { + return lastSeen; + } - public void setLastSeen(Instant lastSeen) { - this.lastSeen = lastSeen; - } + public void setLastSeen(Instant lastSeen) { + this.lastSeen = lastSeen; + } -// public List getPosts() { -// return posts; -// } -// -// public void setPosts(List posts) { -// this.posts = posts; -// } + // public List getPosts() { + // return posts; + // } + // + // public void setPosts(List posts) { + // this.posts = posts; + // } - @Override - public String toString() { - return "User{" + - "id='" + id + '\'' + - ", username='" + username + '\'' + - ", firstname='" + firstname + '\'' + - ", lastname='" + lastname + '\'' + - ", registrationDate=" + registrationDate + - ", lastSeen=" + lastSeen + -// ", posts=" + posts + - '}'; - } + @Override + public String toString() { + return "User{" + "id='" + id + '\'' + ", username='" + username + '\'' + ", firstname='" + firstname + '\'' + + ", lastname='" + lastname + '\'' + ", registrationDate=" + registrationDate + ", lastSeen=" + lastSeen + + // ", posts=" + posts + + '}'; + } } diff --git a/jpa/aot-optimization/src/main/java/example/springdata/aot/UserRepository.java b/jpa/aot-optimization/src/main/java/example/springdata/aot/UserRepository.java index 4d28f9a5..1da15b36 100644 --- a/jpa/aot-optimization/src/main/java/example/springdata/aot/UserRepository.java +++ b/jpa/aot-optimization/src/main/java/example/springdata/aot/UserRepository.java @@ -31,27 +31,27 @@ import org.springframework.data.repository.CrudRepository; */ public interface UserRepository extends CrudRepository, QuerydslPredicateExecutor { - User findUserByUsername(String username); + User findUserByUsername(String username); - Optional findOptionalUserByUsername(String username); + Optional findOptionalUserByUsername(String username); - Long countUsersByLastnameLike(String lastname); + Long countUsersByLastnameLike(String lastname); - Boolean existsByUsername(String username); + Boolean existsByUsername(String username); - List findUserByLastnameLike(String lastname); + List findUserByLastnameLike(String lastname); - List findUserByLastnameStartingWithOrderByFirstname(String lastname); + List findUserByLastnameStartingWithOrderByFirstname(String lastname); - List findTop2UsersByLastnameStartingWith(String lastname); + List findTop2UsersByLastnameStartingWith(String lastname); - Slice findUserByUsernameAfter(String username, Pageable pageable); + Slice findUserByUsernameAfter(String username, Pageable pageable); - List findUserByLastnameStartingWith(String lastname); + List findUserByLastnameStartingWith(String lastname); - Page findUserByLastnameStartingWith(String lastname, Pageable page); + Page findUserByLastnameStartingWith(String lastname, Pageable page); - @Query("SELECT u FROM example.springdata.aot.User u WHERE u.username LIKE ?1%") - List usersWithUsernamesStartingWith(String username); + @Query("SELECT u FROM example.springdata.aot.User u WHERE u.username LIKE ?1%") + List usersWithUsernamesStartingWith(String username); } diff --git a/jpa/aot-optimization/src/main/resources/application.properties b/jpa/aot-optimization/src/main/resources/application.properties index a036d6f1..ee677965 100644 --- a/jpa/aot-optimization/src/main/resources/application.properties +++ b/jpa/aot-optimization/src/main/resources/application.properties @@ -1,5 +1,5 @@ spring.jpa.defer-datasource-initialization=true -spring.jpa.properties.hibernate.boot.allow_jdbc_metadata_access=false spring.aot.repositories.enabled=true +#spring.aot.jpa.repositories.use-entitymanager=true #logging.level.org.springframework.data.repository.aot.generate.RepositoryContributor=trace