diff --git a/Jenkinsfile b/Jenkinsfile
index 415311f002..3759ab7607 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -48,7 +48,7 @@ pipeline {
when {
beforeAgent(true)
allOf {
- branch(pattern: "main|(\\d\\.\\d\\.x)", comparator: "REGEXP")
+ branch(pattern: "issue/gh-java21|main|(\\d\\.\\d\\.x)", comparator: "REGEXP")
not { triggeredBy 'UpstreamCause' }
}
}
diff --git a/ci/pipeline.properties b/ci/pipeline.properties
index 2f45263dbc..026fdcb58b 100644
--- a/ci/pipeline.properties
+++ b/ci/pipeline.properties
@@ -1,10 +1,10 @@
# Java versions
java.main.tag=17.0.6_10-jdk-focal
-java.next.tag=20-jdk-jammy
+java.next.tag=21-jdk-bullseye
# Docker container images - standard
docker.java.main.image=harbor-repo.vmware.com/dockerhub-proxy-cache/library/eclipse-temurin:${java.main.tag}
-docker.java.next.image=harbor-repo.vmware.com/dockerhub-proxy-cache/library/eclipse-temurin:${java.next.tag}
+docker.java.next.image=harbor-repo.vmware.com/dockerhub-proxy-cache/library/openjdk:${java.next.tag}
# Supported versions of MongoDB
docker.mongodb.4.4.version=4.4.18
diff --git a/pom.xml b/pom.xml
index 91916af9b9..75ffed0993 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
org.springframework.data
spring-data-jpa-parent
- 3.2.0-SNAPSHOT
+ 3.2.0-gh-java21-SNAPSHOT
pom
Spring Data JPA Parent
diff --git a/spring-data-envers/pom.xml b/spring-data-envers/pom.xml
index 0c3d16ef85..6645d1eddd 100755
--- a/spring-data-envers/pom.xml
+++ b/spring-data-envers/pom.xml
@@ -5,12 +5,12 @@
org.springframework.data
spring-data-envers
- 3.2.0-SNAPSHOT
+ 3.2.0-gh-java21-SNAPSHOT
org.springframework.data
spring-data-jpa-parent
- 3.2.0-SNAPSHOT
+ 3.2.0-gh-java21-SNAPSHOT
../pom.xml
diff --git a/spring-data-envers/src/test/java/org/springframework/data/envers/sample/AbstractEntity.java b/spring-data-envers/src/test/java/org/springframework/data/envers/sample/AbstractEntity.java
index caf5355dec..231bc18842 100644
--- a/spring-data-envers/src/test/java/org/springframework/data/envers/sample/AbstractEntity.java
+++ b/spring-data-envers/src/test/java/org/springframework/data/envers/sample/AbstractEntity.java
@@ -15,15 +15,13 @@
*/
package org.springframework.data.envers.sample;
-import lombok.EqualsAndHashCode;
-
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.Id;
import jakarta.persistence.MappedSuperclass;
@MappedSuperclass
-@EqualsAndHashCode
abstract class AbstractEntity {
public @Id @GeneratedValue Long id;
+
}
diff --git a/spring-data-envers/src/test/java/org/springframework/data/envers/sample/Country.java b/spring-data-envers/src/test/java/org/springframework/data/envers/sample/Country.java
index f974349488..932b1a99c2 100755
--- a/spring-data-envers/src/test/java/org/springframework/data/envers/sample/Country.java
+++ b/spring-data-envers/src/test/java/org/springframework/data/envers/sample/Country.java
@@ -17,11 +17,10 @@
import jakarta.persistence.Entity;
-import lombok.ToString;
-import org.hibernate.envers.Audited;
-
import java.time.Instant;
+import org.hibernate.envers.Audited;
+
/**
* Sample domain class.
*
@@ -31,7 +30,6 @@
*/
@Audited
@Entity
-@ToString
public class Country extends AbstractEntity {
public String code;
@@ -39,4 +37,8 @@ public class Country extends AbstractEntity {
public Instant timestamp;
public String name;
+
+ public String toString() {
+ return "Country(code=" + this.code + ", timestamp=" + this.timestamp + ", name=" + this.name + ")";
+ }
}
diff --git a/spring-data-envers/src/test/java/org/springframework/data/envers/sample/License.java b/spring-data-envers/src/test/java/org/springframework/data/envers/sample/License.java
index 32ccae2967..efae0b6e86 100755
--- a/spring-data-envers/src/test/java/org/springframework/data/envers/sample/License.java
+++ b/spring-data-envers/src/test/java/org/springframework/data/envers/sample/License.java
@@ -15,12 +15,13 @@
*/
package org.springframework.data.envers.sample;
-import java.util.Set;
-
import jakarta.persistence.Entity;
import jakarta.persistence.ManyToMany;
import jakarta.persistence.Version;
+import java.util.Objects;
+import java.util.Set;
+
import org.hibernate.envers.Audited;
/**
@@ -32,10 +33,24 @@
@Entity
public class License extends AbstractEntity {
- @Version
- public Integer version;
+ @Version public Integer version;
public String name;
- @ManyToMany
- public Set laender;
+ @ManyToMany public Set laender;
+
+ @Override
+ public boolean equals(Object o) {
+
+ if (this == o)
+ return true;
+ if (o == null || getClass() != o.getClass())
+ return false;
+ License license = (License) o;
+ return Objects.equals(version, license.version) && Objects.equals(name, license.name);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(version, name);
+ }
}
diff --git a/spring-data-jpa-distribution/pom.xml b/spring-data-jpa-distribution/pom.xml
index 991cd8cbf0..a52529e536 100644
--- a/spring-data-jpa-distribution/pom.xml
+++ b/spring-data-jpa-distribution/pom.xml
@@ -14,7 +14,7 @@
org.springframework.data
spring-data-jpa-parent
- 3.2.0-SNAPSHOT
+ 3.2.0-gh-java21-SNAPSHOT
../pom.xml
diff --git a/spring-data-jpa/pom.xml b/spring-data-jpa/pom.xml
index 7145881fb0..9289b841ca 100644
--- a/spring-data-jpa/pom.xml
+++ b/spring-data-jpa/pom.xml
@@ -6,7 +6,7 @@
org.springframework.data
spring-data-jpa
- 3.2.0-SNAPSHOT
+ 3.2.0-gh-java21-SNAPSHOT
Spring Data JPA
Spring Data module for JPA repositories.
@@ -15,7 +15,7 @@
org.springframework.data
spring-data-jpa-parent
- 3.2.0-SNAPSHOT
+ 3.2.0-gh-java21-SNAPSHOT
../pom.xml
diff --git a/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/AbstractMappedType.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/AbstractMappedType.java
index 0cf8abfe72..2de5e01cc5 100644
--- a/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/AbstractMappedType.java
+++ b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/AbstractMappedType.java
@@ -15,8 +15,6 @@
*/
package org.springframework.data.jpa.domain.sample;
-import lombok.Getter;
-
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.Id;
import jakarta.persistence.MappedSuperclass;
@@ -29,7 +27,8 @@
@MappedSuperclass
public abstract class AbstractMappedType {
- @Id @GeneratedValue @Getter Long id;
+ @Id
+ @GeneratedValue Long id;
@Version Long version;
private String attribute1;
@@ -38,4 +37,8 @@ public abstract class AbstractMappedType {
AbstractMappedType(String attribute1) {
this.attribute1 = attribute1;
}
+
+ public Long getId() {
+ return this.id;
+ }
}
diff --git a/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/EmployeeWithName.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/EmployeeWithName.java
index ddcb19e0c5..bf0e74772e 100644
--- a/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/EmployeeWithName.java
+++ b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/EmployeeWithName.java
@@ -18,20 +18,16 @@
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.Id;
-import lombok.AccessLevel;
-import lombok.Data;
-import lombok.NoArgsConstructor;
/**
* @author Greg Turnquist
*/
@Entity
-@NoArgsConstructor(access = AccessLevel.PROTECTED)
-@Data
public class EmployeeWithName {
@Id
- @GeneratedValue private Integer id;
+ @GeneratedValue //
+ private Integer id;
private String name;
public EmployeeWithName(String name) {
@@ -39,4 +35,26 @@ public EmployeeWithName(String name) {
this();
this.name = name;
}
+
+ protected EmployeeWithName() {}
+
+ public Integer getId() {
+ return this.id;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String toString() {
+ return "EmployeeWithName(id=" + this.getId() + ", name=" + this.getName() + ")";
+ }
}
diff --git a/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/Item.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/Item.java
index 38c6b83b04..664395f9f3 100755
--- a/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/Item.java
+++ b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/Item.java
@@ -21,8 +21,8 @@
import jakarta.persistence.IdClass;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.Table;
-import lombok.EqualsAndHashCode;
-import lombok.ToString;
+
+import java.util.Objects;
/**
* @author Mark Paluch
@@ -32,13 +32,13 @@
@Entity
@Table
@IdClass(ItemId.class)
-@EqualsAndHashCode
-@ToString
public class Item {
- @Id @Column(columnDefinition = "INT") private Integer id;
+ @Id
+ @Column(columnDefinition = "INT") private Integer id;
- @Id @JoinColumn(name = "manufacturer_id", columnDefinition = "INT") private Integer manufacturerId;
+ @Id
+ @JoinColumn(name = "manufacturer_id", columnDefinition = "INT") private Integer manufacturerId;
private String name;
@@ -72,4 +72,25 @@ public void setName(String name) {
this.name = name;
}
+ @Override
+ public boolean equals(Object o) {
+
+ if (this == o)
+ return true;
+ if (o == null || getClass() != o.getClass())
+ return false;
+ Item item = (Item) o;
+ return Objects.equals(id, item.id) && Objects.equals(manufacturerId, item.manufacturerId)
+ && Objects.equals(name, item.name);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(id, manufacturerId, name);
+ }
+
+ public String toString() {
+ return "Item(id=" + this.getId() + ", manufacturerId=" + this.getManufacturerId() + ", name=" + this.getName()
+ + ")";
+ }
}
diff --git a/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/SampleWithIdClassIncludingEntity.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/SampleWithIdClassIncludingEntity.java
index 4dc08b50cf..0d28b4cfd9 100644
--- a/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/SampleWithIdClassIncludingEntity.java
+++ b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/SampleWithIdClassIncludingEntity.java
@@ -1,14 +1,12 @@
package org.springframework.data.jpa.domain.sample;
-import lombok.Data;
-
-import java.io.Serializable;
-
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.IdClass;
import jakarta.persistence.ManyToOne;
+import java.io.Serializable;
+
/**
* Sample class for integration testing
* {@link org.springframework.data.jpa.repository.support.JpaMetamodelEntityInformation}.
@@ -17,24 +15,81 @@
*/
@Entity
@IdClass(SampleWithIdClassIncludingEntity.SampleWithIdClassPK.class)
-@Data
public class SampleWithIdClassIncludingEntity {
@Id Long first;
- @ManyToOne @Id OtherEntity second;
+ @ManyToOne
+ @Id OtherEntity second;
+
+ public SampleWithIdClassIncludingEntity() {}
+
+ public Long getFirst() {
+ return this.first;
+ }
+
+ public OtherEntity getSecond() {
+ return this.second;
+ }
+
+ public void setFirst(Long first) {
+ this.first = first;
+ }
+
+ public void setSecond(OtherEntity second) {
+ this.second = second;
+ }
+
+ public String toString() {
+ return "SampleWithIdClassIncludingEntity(first=" + this.getFirst() + ", second=" + this.getSecond() + ")";
+ }
- @Data
@SuppressWarnings("serial")
public static class SampleWithIdClassPK implements Serializable {
Long first;
Long second;
+
+ public SampleWithIdClassPK() {}
+
+ public Long getFirst() {
+ return this.first;
+ }
+
+ public Long getSecond() {
+ return this.second;
+ }
+
+ public void setFirst(Long first) {
+ this.first = first;
+ }
+
+ public void setSecond(Long second) {
+ this.second = second;
+ }
+
+ public String toString() {
+ return "SampleWithIdClassIncludingEntity.SampleWithIdClassPK(first=" + this.getFirst() + ", second="
+ + this.getSecond() + ")";
+ }
}
@Entity
- @Data
public static class OtherEntity {
@Id Long otherId;
+
+ public OtherEntity() {}
+
+ public Long getOtherId() {
+ return this.otherId;
+ }
+
+ public void setOtherId(Long otherId) {
+ this.otherId = otherId;
+ }
+
+ public String toString() {
+ return "SampleWithIdClassIncludingEntity.OtherEntity(otherId=" + this.getOtherId() + ")";
+ }
}
/**
diff --git a/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/UserWithOptionalField.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/UserWithOptionalField.java
index f38eeae33f..9cc8d67b15 100644
--- a/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/UserWithOptionalField.java
+++ b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/UserWithOptionalField.java
@@ -15,24 +15,22 @@
*/
package org.springframework.data.jpa.domain.sample;
-import lombok.Data;
-
-import java.util.Optional;
-
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.Id;
+import java.util.Optional;
+
import org.springframework.lang.Nullable;
/**
* @author Greg Turnquist
*/
@Entity
-@Data
public class UserWithOptionalField {
- @Id @GeneratedValue private Long id;
+ @Id
+ @GeneratedValue private Long id;
private String name;
private String role;
@@ -57,4 +55,24 @@ public Optional getRole() {
public void setRole(Optional role) {
this.role = role.orElse(null);
}
+
+ public Long getId() {
+ return this.id;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String toString() {
+ return "UserWithOptionalField(id=" + this.getId() + ", name=" + this.getName() + ", role=" + this.getRole() + ")";
+ }
}
diff --git a/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/UserRepositoryTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/UserRepositoryTests.java
index 844e2ec9fa..c8404af3c6 100644
--- a/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/UserRepositoryTests.java
+++ b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/UserRepositoryTests.java
@@ -31,7 +31,6 @@
import jakarta.persistence.criteria.CriteriaQuery;
import jakarta.persistence.criteria.Predicate;
import jakarta.persistence.criteria.Root;
-import lombok.Data;
import java.util.ArrayList;
import java.util.Arrays;
@@ -56,8 +55,6 @@
import org.springframework.dao.IncorrectResultSizeDataAccessException;
import org.springframework.dao.InvalidDataAccessApiUsageException;
import org.springframework.data.domain.*;
-import org.springframework.data.domain.ExampleMatcher.GenericPropertyMatcher;
-import org.springframework.data.domain.ExampleMatcher.StringMatcher;
import org.springframework.data.domain.Sort.Direction;
import org.springframework.data.domain.Sort.Order;
import org.springframework.data.jpa.domain.Specification;
@@ -1300,9 +1297,8 @@ void scrollByExampleKeysetBackward() {
q -> q.limit(4).sortBy(Sort.by("firstname", "emailAddress")).scroll(ScrollPosition.keyset()));
KeysetScrollPosition scrollPosition = (KeysetScrollPosition) firstWindow.positionAt(2);
- Window previousWindow = repository.findBy(example,
- q -> q.limit(1).sortBy(Sort.by("firstname", "emailAddress"))
- .scroll(ScrollPosition.backward(scrollPosition.getKeys())));
+ Window previousWindow = repository.findBy(example, q -> q.limit(1)
+ .sortBy(Sort.by("firstname", "emailAddress")).scroll(ScrollPosition.backward(scrollPosition.getKeys())));
assertThat(previousWindow).containsOnly(jane2);
assertThat(previousWindow.hasNext()).isTrue();
@@ -2477,9 +2473,22 @@ void findByFluentExampleWithSortedInterfaceBasedProjection() {
@Test // GH-2294
void fluentExamplesWithClassBasedDtosNotYetSupported() {
- @Data
class UserDto {
String firstname;
+
+ public UserDto() {}
+
+ public String getFirstname() {
+ return this.firstname;
+ }
+
+ public void setFirstname(String firstname) {
+ this.firstname = firstname;
+ }
+
+ public String toString() {
+ return "UserDto(firstname=" + this.getFirstname() + ")";
+ }
}
assertThatExceptionOfType(UnsupportedOperationException.class).isThrownBy(() -> {
@@ -2709,9 +2718,22 @@ void findByFluentSpecificationWithSortedInterfaceBasedProjection() {
@Test // GH-2274
void fluentSpecificationWithClassBasedDtosNotYetSupported() {
- @Data
class UserDto {
String firstname;
+
+ public UserDto() {}
+
+ public String getFirstname() {
+ return this.firstname;
+ }
+
+ public void setFirstname(String firstname) {
+ this.firstname = firstname;
+ }
+
+ public String toString() {
+ return "UserDto(firstname=" + this.getFirstname() + ")";
+ }
}
assertThatExceptionOfType(UnsupportedOperationException.class).isThrownBy(() -> {
diff --git a/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/procedures/MySqlStoredProcedureIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/procedures/MySqlStoredProcedureIntegrationTests.java
index cf4ce08c03..025e3424bc 100644
--- a/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/procedures/MySqlStoredProcedureIntegrationTests.java
+++ b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/procedures/MySqlStoredProcedureIntegrationTests.java
@@ -16,18 +16,16 @@
package org.springframework.data.jpa.repository.procedures;
-import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.*;
import jakarta.persistence.Entity;
import jakarta.persistence.EntityManagerFactory;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.Id;
import jakarta.persistence.NamedStoredProcedureQuery;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
import java.util.List;
+import java.util.Objects;
import java.util.Properties;
import javax.sql.DataSource;
@@ -146,17 +144,59 @@ void testEntityListFromNamedProcedure() {
new Employee(4, "Gabriel"));
}
- @Data
@Entity
- @AllArgsConstructor
- @NoArgsConstructor
@NamedStoredProcedureQuery(name = "get_employees_mysql", procedureName = "get_employees",
resultClasses = Employee.class)
public static class Employee {
@Id
- @GeneratedValue private Integer id;
+ @GeneratedValue //
+ private Integer id;
private String name;
+
+ public Employee(Integer id, String name) {
+
+ this.id = id;
+ this.name = name;
+ }
+
+ public Employee() {}
+
+ public Integer getId() {
+ return this.id;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+
+ if (this == o)
+ return true;
+ if (o == null || getClass() != o.getClass())
+ return false;
+ Employee employee = (Employee) o;
+ return Objects.equals(id, employee.id) && Objects.equals(name, employee.name);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(id, name);
+ }
+
+ public String toString() {
+ return "MySqlStoredProcedureIntegrationTests.Employee(id=" + this.getId() + ", name=" + this.getName() + ")";
+ }
}
@Transactional
diff --git a/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/procedures/PostgresStoredProcedureIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/procedures/PostgresStoredProcedureIntegrationTests.java
index 96c0f5e710..4b2a9c39dc 100644
--- a/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/procedures/PostgresStoredProcedureIntegrationTests.java
+++ b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/procedures/PostgresStoredProcedureIntegrationTests.java
@@ -25,12 +25,10 @@
import jakarta.persistence.NamedStoredProcedureQuery;
import jakarta.persistence.ParameterMode;
import jakarta.persistence.StoredProcedureParameter;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.util.List;
+import java.util.Objects;
import java.util.Properties;
import javax.sql.DataSource;
@@ -152,10 +150,7 @@ void testEntityListFromNamedProcedure() {
new Employee(4, "Gabriel"));
}
- @Data
@Entity
- @AllArgsConstructor
- @NoArgsConstructor
@NamedStoredProcedureQuery( //
name = "get_employees_postgres", //
procedureName = "get_employees", //
@@ -164,8 +159,53 @@ void testEntityListFromNamedProcedure() {
public static class Employee {
@Id
- @GeneratedValue private Integer id;
+ @GeneratedValue //
+ private Integer id;
private String name;
+
+ public Employee(Integer id, String name) {
+
+ this.id = id;
+ this.name = name;
+ }
+
+ public Employee() {}
+
+ public Integer getId() {
+ return this.id;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+
+ if (this == o)
+ return true;
+ if (o == null || getClass() != o.getClass())
+ return false;
+ Employee employee = (Employee) o;
+ return Objects.equals(id, employee.id) && Objects.equals(name, employee.name);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(id, name);
+ }
+
+ public String toString() {
+ return "PostgresStoredProcedureIntegrationTests.Employee(id=" + this.getId() + ", name=" + this.getName() + ")";
+ }
}
@Transactional
diff --git a/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/procedures/PostgresStoredProcedureNullHandlingIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/procedures/PostgresStoredProcedureNullHandlingIntegrationTests.java
index bf87de2be4..1739dbed9e 100644
--- a/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/procedures/PostgresStoredProcedureNullHandlingIntegrationTests.java
+++ b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/procedures/PostgresStoredProcedureNullHandlingIntegrationTests.java
@@ -20,10 +20,6 @@
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
-import lombok.AccessLevel;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
import java.util.Date;
import java.util.Properties;
@@ -81,16 +77,52 @@ void invokingNullOnTemporalStoredProcedureParameterShouldWork() {
repository.countLocalDate(null);
}
- @Data
- @AllArgsConstructor
- @NoArgsConstructor(access = AccessLevel.PROTECTED)
@Entity
class TestModel {
@Id
- @GeneratedValue(strategy = GenerationType.AUTO) private long id;
+ @GeneratedValue(strategy = GenerationType.AUTO) //
+ private long id;
private UUID uuid;
private Date date;
+
+ public TestModel(long id, UUID uuid, Date date) {
+
+ this.id = id;
+ this.uuid = uuid;
+ this.date = date;
+ }
+
+ protected TestModel() {}
+
+ public long getId() {
+ return this.id;
+ }
+
+ public UUID getUuid() {
+ return this.uuid;
+ }
+
+ public Date getDate() {
+ return this.date;
+ }
+
+ public void setId(long id) {
+ this.id = id;
+ }
+
+ public void setUuid(UUID uuid) {
+ this.uuid = uuid;
+ }
+
+ public void setDate(Date date) {
+ this.date = date;
+ }
+
+ public String toString() {
+ return "PostgresStoredProcedureNullHandlingIntegrationTests.TestModel(id=" + this.getId() + ", uuid="
+ + this.getUuid() + ", date=" + this.getDate() + ")";
+ }
}
@Transactional
diff --git a/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/projections/ProjectionJoinIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/projections/ProjectionJoinIntegrationTests.java
index d100cb3f0f..08be64dd89 100644
--- a/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/projections/ProjectionJoinIntegrationTests.java
+++ b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/projections/ProjectionJoinIntegrationTests.java
@@ -17,8 +17,6 @@
import static org.assertj.core.api.Assertions.*;
-import lombok.Data;
-
import jakarta.persistence.Access;
import jakarta.persistence.AccessType;
import jakarta.persistence.CascadeType;
@@ -31,7 +29,6 @@
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
-
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.repository.CrudRepository;
import org.springframework.test.context.ContextConfiguration;
@@ -59,7 +56,6 @@ void findByIdPerformsAnOuterJoin() {
assertThat(projection.getAddress()).isNull();
}
- @Data
public static class UserProjection {
private final int id;
@@ -69,6 +65,19 @@ public UserProjection(int id, Address address) {
this.id = id;
this.address = address;
}
+
+ public int getId() {
+ return this.id;
+ }
+
+ public Address getAddress() {
+ return this.address;
+ }
+
+ public String toString() {
+ return "ProjectionJoinIntegrationTests.UserProjection(id=" + this.getId() + ", address=" + this.getAddress()
+ + ")";
+ }
}
public interface UserRepository extends CrudRepository {
@@ -76,21 +85,68 @@ public interface UserRepository extends CrudRepository {
T findById(int id, Class projectionClass);
}
- @Data
@Table(name = "ProjectionJoinIntegrationTests_User")
@Entity
static class User {
- @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Access(value = AccessType.PROPERTY) int id;
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ @Access(value = AccessType.PROPERTY) int id;
@OneToOne(cascade = CascadeType.ALL) Address address;
+
+ public User() {}
+
+ public int getId() {
+ return this.id;
+ }
+
+ public Address getAddress() {
+ return this.address;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public void setAddress(Address address) {
+ this.address = address;
+ }
+
+ public String toString() {
+ return "ProjectionJoinIntegrationTests.User(id=" + this.getId() + ", address=" + this.getAddress() + ")";
+ }
}
- @Data
@Table(name = "ProjectionJoinIntegrationTests_Address")
@Entity
static class Address {
- @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Access(value = AccessType.PROPERTY) int id;
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ @Access(value = AccessType.PROPERTY) //
+ int id;
String streetName;
+
+ public Address() {}
+
+ public int getId() {
+ return this.id;
+ }
+
+ public String getStreetName() {
+ return this.streetName;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public void setStreetName(String streetName) {
+ this.streetName = streetName;
+ }
+
+ public String toString() {
+ return "ProjectionJoinIntegrationTests.Address(id=" + this.getId() + ", streetName=" + this.getStreetName() + ")";
+ }
}
}
diff --git a/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/projections/ProjectionsIntegrationTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/projections/ProjectionsIntegrationTests.java
index 0572cef1cf..66b4f99267 100644
--- a/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/projections/ProjectionsIntegrationTests.java
+++ b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/projections/ProjectionsIntegrationTests.java
@@ -17,12 +17,6 @@
import static org.assertj.core.api.Assertions.*;
-import lombok.Data;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Properties;
-
import jakarta.persistence.CascadeType;
import jakarta.persistence.Entity;
import jakarta.persistence.EntityManagerFactory;
@@ -31,12 +25,16 @@
import jakarta.persistence.JoinColumn;
import jakarta.persistence.OneToMany;
import jakarta.persistence.Table;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Properties;
+
import javax.sql.DataSource;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
-
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.data.jpa.repository.JpaRepository;
@@ -94,28 +92,99 @@ private SubEntity createSubEntity(int index) {
return entity;
}
- @Data
@Entity(name = "Dummy")
@Table(name = "DummyEntity")
static class DummyEntityWithCollection {
- @GeneratedValue @Id Long id;
+ @GeneratedValue
+ @Id Long id;
String name;
- @OneToMany(cascade = CascadeType.ALL) @JoinColumn(name = "subs") List subs = new ArrayList<>();
+ @OneToMany(cascade = CascadeType.ALL)
+ @JoinColumn(name = "subs") List subs = new ArrayList<>();
String otherAttribute;
+
+ public DummyEntityWithCollection() {}
+
+ public Long getId() {
+ return this.id;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public List getSubs() {
+ return this.subs;
+ }
+
+ public String getOtherAttribute() {
+ return this.otherAttribute;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public void setSubs(List subs) {
+ this.subs = subs;
+ }
+
+ public void setOtherAttribute(String otherAttribute) {
+ this.otherAttribute = otherAttribute;
+ }
+
+ public String toString() {
+ return "ProjectionsIntegrationTests.DummyEntityWithCollection(id=" + this.getId() + ", name=" + this.getName()
+ + ", subs=" + this.getSubs() + ", otherAttribute=" + this.getOtherAttribute() + ")";
+ }
}
- @Data
@Entity
@Table(name = "SubEntity")
static class SubEntity {
- @GeneratedValue @Id Long id;
+ @GeneratedValue
+ @Id Long id;
String name;
String otherAttribute;
+
+ public SubEntity() {}
+
+ public Long getId() {
+ return this.id;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public String getOtherAttribute() {
+ return this.otherAttribute;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public void setOtherAttribute(String otherAttribute) {
+ this.otherAttribute = otherAttribute;
+ }
+
+ public String toString() {
+ return "ProjectionsIntegrationTests.SubEntity(id=" + this.getId() + ", name=" + this.getName()
+ + ", otherAttribute=" + this.getOtherAttribute() + ")";
+ }
}
interface DummyEntityProjection {
diff --git a/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/NamedOrIndexedQueryParameterSetterUnitTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/NamedOrIndexedQueryParameterSetterUnitTests.java
index 171322146e..47a063bad4 100644
--- a/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/NamedOrIndexedQueryParameterSetterUnitTests.java
+++ b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/NamedOrIndexedQueryParameterSetterUnitTests.java
@@ -25,7 +25,6 @@
import jakarta.persistence.Query;
import jakarta.persistence.TemporalType;
import jakarta.persistence.criteria.ParameterExpression;
-import lombok.Value;
import java.util.Arrays;
import java.util.Collections;
@@ -216,15 +215,33 @@ private static Query mockExceptionThrowingQueryWithNamedParameters() {
return query;
}
- @Value
- private static class ParameterImpl implements Parameter