Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 2b82d56

Browse files
committedMay 13, 2025··
Reformat code.
Also, upgrade to Hibernate 7.0 CR1.
1 parent d40fec5 commit 2b82d56

File tree

7 files changed

+208
-215
lines changed

7 files changed

+208
-215
lines changed
 

‎jpa/aot-optimization/pom.xml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
<properties>
1616
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
17-
<hibernate.version>7.0.0.Beta5</hibernate.version>
17+
<hibernate.version>7.0.0.CR1</hibernate.version>
1818
<spring-data-bom.version>2025.1.0-SNAPSHOT</spring-data-bom.version>
1919
</properties>
2020

‎jpa/aot-optimization/src/main/java/example/springdata/aot/AotJpaApp.java‎

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@
2424
@SpringBootApplication
2525
public class AotJpaApp {
2626

27-
public static void main(String[] args) {
28-
SpringApplication.run(AotJpaApp.class, args);
29-
}
27+
public static void main(String[] args) {
28+
SpringApplication.run(AotJpaApp.class, args);
29+
}
30+
3031
}

‎jpa/aot-optimization/src/main/java/example/springdata/aot/CLR.java‎

Lines changed: 91 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -31,94 +31,95 @@
3131
@Component
3232
public class CLR implements CommandLineRunner {
3333

34-
@Autowired UserRepository repository;
35-
36-
@Override
37-
public void run(String... args) throws Exception {
38-
39-
User luke = new User("id-1", "luke");
40-
luke.setFirstname("Luke");
41-
luke.setLastname("Skywalker");
42-
// Post lukeP1 = new Post("I have a bad feeling about this.");
43-
// em.persist(lukeP1);
44-
// luke.setPosts(List.of(lukeP1));
45-
46-
User leia = new User("id-2", "leia");
47-
leia.setFirstname("Leia");
48-
leia.setLastname("Organa");
49-
50-
User han = new User("id-3", "han");
51-
han.setFirstname("Han");
52-
han.setLastname("Solo");
53-
// Post hanP1 = new Post("It's the ship that made the Kessel Run in less than 12 Parsecs.");
54-
// em.persist(hanP1);
55-
// han.setPosts(List.of(hanP1));
56-
57-
User chewbacca = new User("id-4", "chewbacca");
58-
User yoda = new User("id-5", "yoda");
59-
Post yodaP1 = new Post("Do. Or do not. There is no try.");
60-
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.");
61-
// em.persist(yodaP1);
62-
// em.persist(yodaP2);
63-
// yoda.setPosts(List.of(yodaP1, yodaP2));
64-
65-
User vader = new User("id-6", "vader");
66-
vader.setFirstname("Anakin");
67-
vader.setLastname("Skywalker");
68-
// Post vaderP1 = new Post("I am your father");
69-
// em.persist(vaderP1);
70-
// vader.setPosts(List.of(vaderP1));
71-
72-
User kylo = new User("id-7", "kylo");
73-
kylo.setFirstname("Ben");
74-
kylo.setLastname("Solo");
75-
76-
repository.saveAll(List.of(luke, leia, han, chewbacca, yoda, vader, kylo));
77-
78-
System.out.println("------- annotated multi -------");
79-
System.out.println(repository.usersWithUsernamesStartingWith("l"));
80-
81-
System.out.println("------- derived single -------");
82-
System.out.println(repository.findUserByUsername("yoda"));
83-
84-
// System.out.println("------- derived nested.path -------");
85-
// System.out.println(repository.findUserByPostsMessageLike("father"));
86-
87-
System.out.println("------- derived optional -------");
88-
System.out.println(repository.findOptionalUserByUsername("yoda"));
89-
90-
System.out.println("------- derived count -------");
91-
Long count = repository.countUsersByLastnameLike("Sky");
92-
System.out.println("user count " + count);
93-
94-
System.out.println("------- derived exists -------");
95-
Boolean exists = repository.existsByUsername("vader");
96-
System.out.println("user exists " + exists);
97-
98-
System.out.println("------- derived multi -------");
99-
System.out.println(repository.findUserByLastnameStartingWith("Sky"));
100-
101-
System.out.println("------- derived sorted -------");
102-
System.out.println(repository.findUserByLastnameStartingWithOrderByFirstname("Sky"));
103-
104-
System.out.println("------- derived page -------");
105-
Page<User> page0 = repository.findUserByLastnameStartingWith("S", PageRequest.of(0, 2));
106-
System.out.println("page0: " + page0);
107-
System.out.println("page0.content: " + page0.getContent());
108-
109-
Page<User> page1 = repository.findUserByLastnameStartingWith("S", PageRequest.of(1, 2));
110-
System.out.println("page1: " + page1);
111-
System.out.println("page1.content: " + page1.getContent());
112-
113-
System.out.println("------- derived slice -------");
114-
Slice<User> slice0 = repository.findUserByUsernameAfter("luke", PageRequest.of(0, 2));
115-
System.out.println("slice0: " + slice0);
116-
System.out.println("slice0.content: " + slice0.getContent());
117-
118-
System.out.println("------- derived top -------");
119-
System.out.println(repository.findTop2UsersByLastnameStartingWith("S"));
120-
121-
// System.out.println("------- derived with fields -------");
122-
// System.out.println(repository.findJustUsernameBy());
123-
}
34+
@Autowired UserRepository repository;
35+
36+
@Override
37+
public void run(String... args) throws Exception {
38+
39+
User luke = new User("id-1", "luke");
40+
luke.setFirstname("Luke");
41+
luke.setLastname("Skywalker");
42+
// Post lukeP1 = new Post("I have a bad feeling about this.");
43+
// em.persist(lukeP1);
44+
// luke.setPosts(List.of(lukeP1));
45+
46+
User leia = new User("id-2", "leia");
47+
leia.setFirstname("Leia");
48+
leia.setLastname("Organa");
49+
50+
User han = new User("id-3", "han");
51+
han.setFirstname("Han");
52+
han.setLastname("Solo");
53+
// Post hanP1 = new Post("It's the ship that made the Kessel Run in less than 12 Parsecs.");
54+
// em.persist(hanP1);
55+
// han.setPosts(List.of(hanP1));
56+
57+
User chewbacca = new User("id-4", "chewbacca");
58+
User yoda = new User("id-5", "yoda");
59+
Post yodaP1 = new Post("Do. Or do not. There is no try.");
60+
Post yodaP2 = new Post(
61+
"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.");
62+
// em.persist(yodaP1);
63+
// em.persist(yodaP2);
64+
// yoda.setPosts(List.of(yodaP1, yodaP2));
65+
66+
User vader = new User("id-6", "vader");
67+
vader.setFirstname("Anakin");
68+
vader.setLastname("Skywalker");
69+
// Post vaderP1 = new Post("I am your father");
70+
// em.persist(vaderP1);
71+
// vader.setPosts(List.of(vaderP1));
72+
73+
User kylo = new User("id-7", "kylo");
74+
kylo.setFirstname("Ben");
75+
kylo.setLastname("Solo");
76+
77+
repository.saveAll(List.of(luke, leia, han, chewbacca, yoda, vader, kylo));
78+
79+
System.out.println("------- annotated multi -------");
80+
System.out.println(repository.usersWithUsernamesStartingWith("l"));
81+
82+
System.out.println("------- derived single -------");
83+
System.out.println(repository.findUserByUsername("yoda"));
84+
85+
// System.out.println("------- derived nested.path -------");
86+
// System.out.println(repository.findUserByPostsMessageLike("father"));
87+
88+
System.out.println("------- derived optional -------");
89+
System.out.println(repository.findOptionalUserByUsername("yoda"));
90+
91+
System.out.println("------- derived count -------");
92+
Long count = repository.countUsersByLastnameLike("Sky");
93+
System.out.println("user count " + count);
94+
95+
System.out.println("------- derived exists -------");
96+
Boolean exists = repository.existsByUsername("vader");
97+
System.out.println("user exists " + exists);
98+
99+
System.out.println("------- derived multi -------");
100+
System.out.println(repository.findUserByLastnameStartingWith("Sky"));
101+
102+
System.out.println("------- derived sorted -------");
103+
System.out.println(repository.findUserByLastnameStartingWithOrderByFirstname("Sky"));
104+
105+
System.out.println("------- derived page -------");
106+
Page<User> page0 = repository.findUserByLastnameStartingWith("S", PageRequest.of(0, 2));
107+
System.out.println("page0: " + page0);
108+
System.out.println("page0.content: " + page0.getContent());
109+
110+
Page<User> page1 = repository.findUserByLastnameStartingWith("S", PageRequest.of(1, 2));
111+
System.out.println("page1: " + page1);
112+
System.out.println("page1.content: " + page1.getContent());
113+
114+
System.out.println("------- derived slice -------");
115+
Slice<User> slice0 = repository.findUserByUsernameAfter("luke", PageRequest.of(0, 2));
116+
System.out.println("slice0: " + slice0);
117+
System.out.println("slice0.content: " + slice0.getContent());
118+
119+
System.out.println("------- derived top -------");
120+
System.out.println(repository.findTop2UsersByLastnameStartingWith("S"));
121+
122+
// System.out.println("------- derived with fields -------");
123+
// System.out.println(repository.findJustUsernameBy());
124+
}
124125
}

‎jpa/aot-optimization/src/main/java/example/springdata/aot/Post.java‎

Lines changed: 25 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -30,39 +30,37 @@
3030
@Entity
3131
public class Post {
3232

33-
@Id
34-
@GeneratedValue
35-
private Long id;
33+
@Id
34+
@GeneratedValue private Long id;
3635

37-
private String message;
38-
private Instant date;
36+
private String message;
37+
private Instant date;
3938

40-
public Post() {
41-
}
39+
public Post() {}
4240

43-
public Post(String message) {
44-
this.message = message;
45-
this.date = Instant.now().minus(new Random().nextLong(100), ChronoUnit.MINUTES);
46-
}
41+
public Post(String message) {
42+
this.message = message;
43+
this.date = Instant.now().minus(new Random().nextLong(100), ChronoUnit.MINUTES);
44+
}
4745

48-
public String getMessage() {
49-
return message;
50-
}
46+
public String getMessage() {
47+
return message;
48+
}
5149

52-
public void setMessage(String message) {
53-
this.message = message;
54-
}
50+
public void setMessage(String message) {
51+
this.message = message;
52+
}
5553

56-
public Instant getDate() {
57-
return date;
58-
}
54+
public Instant getDate() {
55+
return date;
56+
}
5957

60-
public void setDate(Instant date) {
61-
this.date = date;
62-
}
58+
public void setDate(Instant date) {
59+
this.date = date;
60+
}
6361

64-
@Override
65-
public String toString() {
66-
return message;
67-
}
62+
@Override
63+
public String toString() {
64+
return message;
65+
}
6866
}

‎jpa/aot-optimization/src/main/java/example/springdata/aot/User.java‎

Lines changed: 74 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -28,85 +28,78 @@
2828
@Entity(name = "users")
2929
public class User {
3030

31-
@Id
32-
private String id;
33-
private String username;
34-
35-
@Column(name = "first_name") String firstname;
36-
@Column(name = "last_name") String lastname;
37-
38-
// @OneToMany
39-
// private List<Post> posts;
40-
41-
Instant registrationDate;
42-
Instant lastSeen;
43-
44-
public User() {
45-
}
46-
47-
public User(String id, String username) {
48-
this.id = id;
49-
this.username = username;
50-
}
51-
52-
public String getId() {
53-
return id;
54-
}
55-
56-
public String getUsername() {
57-
return username;
58-
}
59-
60-
public String getFirstname() {
61-
return firstname;
62-
}
63-
64-
public void setFirstname(String firstname) {
65-
this.firstname = firstname;
66-
}
67-
68-
public String getLastname() {
69-
return lastname;
70-
}
71-
72-
public void setLastname(String lastname) {
73-
this.lastname = lastname;
74-
}
75-
76-
public Instant getRegistrationDate() {
77-
return registrationDate;
78-
}
79-
80-
public void setRegistrationDate(Instant registrationDate) {
81-
this.registrationDate = registrationDate;
82-
}
83-
84-
public Instant getLastSeen() {
85-
return lastSeen;
86-
}
87-
88-
public void setLastSeen(Instant lastSeen) {
89-
this.lastSeen = lastSeen;
90-
}
91-
92-
// public List<Post> getPosts() {
93-
// return posts;
94-
// }
95-
//
96-
// public void setPosts(List<Post> posts) {
97-
// this.posts = posts;
98-
// }
99-
100-
@Override
101-
public String toString() {
102-
return "User{" +
103-
"id='" + id + '\'' +
104-
", username='" + username + '\'' +
105-
", firstname='" + firstname + '\'' +
106-
", lastname='" + lastname + '\'' +
107-
", registrationDate=" + registrationDate +
108-
", lastSeen=" + lastSeen +
109-
// ", posts=" + posts +
110-
'}';
111-
}
31+
@Id private String id;
32+
private String username;
33+
34+
@Column(name = "first_name") String firstname;
35+
@Column(name = "last_name") String lastname;
36+
37+
// @OneToMany
38+
// private List<Post> posts;
39+
40+
Instant registrationDate;
41+
Instant lastSeen;
42+
43+
public User() {}
44+
45+
public User(String id, String username) {
46+
this.id = id;
47+
this.username = username;
48+
}
49+
50+
public String getId() {
51+
return id;
52+
}
53+
54+
public String getUsername() {
55+
return username;
56+
}
57+
58+
public String getFirstname() {
59+
return firstname;
60+
}
61+
62+
public void setFirstname(String firstname) {
63+
this.firstname = firstname;
64+
}
65+
66+
public String getLastname() {
67+
return lastname;
68+
}
69+
70+
public void setLastname(String lastname) {
71+
this.lastname = lastname;
72+
}
73+
74+
public Instant getRegistrationDate() {
75+
return registrationDate;
76+
}
77+
78+
public void setRegistrationDate(Instant registrationDate) {
79+
this.registrationDate = registrationDate;
80+
}
81+
82+
public Instant getLastSeen() {
83+
return lastSeen;
84+
}
85+
86+
public void setLastSeen(Instant lastSeen) {
87+
this.lastSeen = lastSeen;
88+
}
89+
90+
// public List<Post> getPosts() {
91+
// return posts;
92+
// }
93+
//
94+
// public void setPosts(List<Post> posts) {
95+
// this.posts = posts;
96+
// }
97+
98+
@Override
99+
public String toString() {
100+
return "User{" + "id='" + id + '\'' + ", username='" + username + '\'' + ", firstname='" + firstname + '\''
101+
+ ", lastname='" + lastname + '\'' + ", registrationDate=" + registrationDate + ", lastSeen=" + lastSeen +
102+
// ", posts=" + posts +
103+
'}';
104+
}
112105
}

‎jpa/aot-optimization/src/main/java/example/springdata/aot/UserRepository.java‎

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -31,27 +31,27 @@
3131
*/
3232
public interface UserRepository extends CrudRepository<User, String>, QuerydslPredicateExecutor<User> {
3333

34-
User findUserByUsername(String username);
34+
User findUserByUsername(String username);
3535

36-
Optional<User> findOptionalUserByUsername(String username);
36+
Optional<User> findOptionalUserByUsername(String username);
3737

38-
Long countUsersByLastnameLike(String lastname);
38+
Long countUsersByLastnameLike(String lastname);
3939

40-
Boolean existsByUsername(String username);
40+
Boolean existsByUsername(String username);
4141

42-
List<User> findUserByLastnameLike(String lastname);
42+
List<User> findUserByLastnameLike(String lastname);
4343

44-
List<User> findUserByLastnameStartingWithOrderByFirstname(String lastname);
44+
List<User> findUserByLastnameStartingWithOrderByFirstname(String lastname);
4545

46-
List<User> findTop2UsersByLastnameStartingWith(String lastname);
46+
List<User> findTop2UsersByLastnameStartingWith(String lastname);
4747

48-
Slice<User> findUserByUsernameAfter(String username, Pageable pageable);
48+
Slice<User> findUserByUsernameAfter(String username, Pageable pageable);
4949

50-
List<User> findUserByLastnameStartingWith(String lastname);
50+
List<User> findUserByLastnameStartingWith(String lastname);
5151

52-
Page<User> findUserByLastnameStartingWith(String lastname, Pageable page);
52+
Page<User> findUserByLastnameStartingWith(String lastname, Pageable page);
5353

54-
@Query("SELECT u FROM example.springdata.aot.User u WHERE u.username LIKE ?1%")
55-
List<User> usersWithUsernamesStartingWith(String username);
54+
@Query("SELECT u FROM example.springdata.aot.User u WHERE u.username LIKE ?1%")
55+
List<User> usersWithUsernamesStartingWith(String username);
5656

5757
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
spring.jpa.defer-datasource-initialization=true
2-
spring.jpa.properties.hibernate.boot.allow_jdbc_metadata_access=false
32
spring.aot.repositories.enabled=true
3+
#spring.aot.jpa.repositories.use-entitymanager=true
44
#logging.level.org.springframework.data.repository.aot.generate.RepositoryContributor=trace
55

0 commit comments

Comments
 (0)
Please sign in to comment.