From 450e82b2ca57ddabeba6eaa2f10b8acef3a1566b Mon Sep 17 00:00:00 2001 From: Eugene Kovko <37694937+eukovko@users.noreply.github.com> Date: Thu, 25 Jan 2024 18:30:04 +0100 Subject: [PATCH] Bael 7452 fixes (#15729) * BAEL-7452: Renamed service getter * BAEL-7452: Delombok and cleanup --- .../spring-boot-persistence-4/pom.xml | 6 -- .../java/com/baeldung/listvsset/Service.java | 2 +- .../eager/list/fulldomain/Comment.java | 62 ++++++++++++++- .../eager/list/fulldomain/Group.java | 53 ++++++++++++- .../listvsset/eager/list/fulldomain/Post.java | 62 ++++++++++++++- .../eager/list/fulldomain/Profile.java | 70 ++++++++++++++++- .../listvsset/eager/list/fulldomain/User.java | 78 ++++++++++++++++++- .../eager/list/moderatedomain/Group.java | 53 ++++++++++++- .../eager/list/moderatedomain/Post.java | 54 ++++++++++++- .../eager/list/moderatedomain/User.java | 42 +++++++++- .../eager/list/simpledomain/Post.java | 53 ++++++++++++- .../eager/list/simpledomain/User.java | 62 ++++++++++++++- .../eager/set/fulldomain/Comment.java | 42 +++++++++- .../listvsset/eager/set/fulldomain/Group.java | 33 +++++++- .../listvsset/eager/set/fulldomain/Post.java | 42 +++++++++- .../eager/set/fulldomain/Profile.java | 70 ++++++++++++++++- .../listvsset/eager/set/fulldomain/User.java | 58 +++++++++++++- .../eager/set/lazy/moderatedomain/Group.java | 53 ++++++++++++- .../eager/set/lazy/moderatedomain/Post.java | 33 +++++++- .../eager/set/lazy/moderatedomain/User.java | 42 +++++++++- .../eager/set/moderatedomain/Group.java | 53 ++++++++++++- .../eager/set/moderatedomain/Post.java | 33 +++++++- .../eager/set/moderatedomain/User.java | 42 +++++++++- .../eager/set/simpledomain/Post.java | 33 +++++++- .../eager/set/simpledomain/User.java | 62 ++++++++++++++- .../lazy/list/moderatedomain/Group.java | 53 ++++++++++++- .../list/moderatedomain/GroupService.java | 1 + .../lazy/list/moderatedomain/Post.java | 53 ++++++++++++- .../lazy/list/moderatedomain/User.java | 42 +++++++++- .../nplusone/defaultfetch/list/Post.java | 46 ++++++++++- .../nplusone/defaultfetch/list/User.java | 56 ++++++++++++- .../BaseNPlusOneIntegrationTest.java | 6 +- ...sOneLazyModerateDomainIntegrationTest.java | 4 +- ...lusOneLazySimpleDomainIntegrationTest.java | 6 +- ...PlusOneEagerFullDomainIntegrationTest.java | 4 +- ...OneEagerModerateDomainIntegrationTest.java | 4 +- ...usOneEagerSimpleDomainIntegrationTest.java | 10 +-- ...OneEagerFullDomainJoinIntegrationTest.java | 4 +- ...OneEagerModerateDomainIntegrationTest.java | 4 +- ...usOneEagerSimpleDomainIntegrationTest.java | 10 +-- 40 files changed, 1406 insertions(+), 90 deletions(-) diff --git a/persistence-modules/spring-boot-persistence-4/pom.xml b/persistence-modules/spring-boot-persistence-4/pom.xml index 78cd75234a..1452f5ad66 100644 --- a/persistence-modules/spring-boot-persistence-4/pom.xml +++ b/persistence-modules/spring-boot-persistence-4/pom.xml @@ -57,11 +57,6 @@ jackson-databind ${jackson.version} - - org.projectlombok - lombok - ${lombok.version} - @@ -81,7 +76,6 @@ 1.0.7 3.7.0 2.16.0 - 1.18.28 \ No newline at end of file diff --git a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/Service.java b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/Service.java index 2a700de09b..1b11d6facb 100644 --- a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/Service.java +++ b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/Service.java @@ -50,7 +50,7 @@ public class Service extends ParametrizationAware { public int getUserByIdWithFunction(Long id, ToIntFunction function) { Optional optionalUser = repository.findById(id); - if(optionalUser.isPresent()) { + if (optionalUser.isPresent()) { return function.applyAsInt(optionalUser.get()); } else { return 0; diff --git a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/list/fulldomain/Comment.java b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/list/fulldomain/Comment.java index 482ddc3dc5..6a939b63bb 100644 --- a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/list/fulldomain/Comment.java +++ b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/list/fulldomain/Comment.java @@ -4,9 +4,8 @@ import com.fasterxml.jackson.annotation.JsonBackReference; import jakarta.persistence.Entity; import jakarta.persistence.Id; import jakarta.persistence.ManyToOne; -import lombok.Data; +import java.util.Objects; -@Data @Entity public class Comment { @@ -22,4 +21,63 @@ public class Comment { @ManyToOne private Post post; + public Comment() { + } + + public Long getId() { + return this.id; + } + + public String getText() { + return this.text; + } + + public User getAuthor() { + return this.author; + } + + public Post getPost() { + return this.post; + } + + public void setId(Long id) { + this.id = id; + } + + public void setText(String text) { + this.text = text; + } + + public void setAuthor(User author) { + this.author = author; + } + + public void setPost(Post post) { + this.post = post; + } + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + + Comment comment = (Comment) o; + + return Objects.equals(id, comment.id); + } + + @Override + public int hashCode() { + return id != null ? id.hashCode() : 0; + } + + public String toString() { + return "Comment(id=" + this.getId() + ", text=" + this.getText() + ", author=" + this.getAuthor() + ", post=" + this.getPost() + + ")"; + } } diff --git a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/list/fulldomain/Group.java b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/list/fulldomain/Group.java index 0f02d3025c..57a8b40378 100644 --- a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/list/fulldomain/Group.java +++ b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/list/fulldomain/Group.java @@ -6,9 +6,8 @@ import jakarta.persistence.Id; import jakarta.persistence.ManyToMany; import jakarta.persistence.Table; import java.util.List; -import lombok.Data; +import java.util.Objects; -@Data @Entity(name = "interest_group") @Table(name = "interest_group") public class Group { @@ -20,4 +19,54 @@ public class Group { @ManyToMany(fetch = FetchType.EAGER) private List members; + + public Group() { + } + + public Long getId() { + return this.id; + } + + public String getName() { + return this.name; + } + + public List getMembers() { + return this.members; + } + + public void setId(Long id) { + this.id = id; + } + + public void setName(String name) { + this.name = name; + } + + public void setMembers(List members) { + this.members = members; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + + Group group = (Group) o; + + return Objects.equals(id, group.id); + } + + @Override + public int hashCode() { + return id != null ? id.hashCode() : 0; + } + + public String toString() { + return "Group(id=" + this.getId() + ", name=" + this.getName() + ", members=" + this.getMembers() + ")"; + } } diff --git a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/list/fulldomain/Post.java b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/list/fulldomain/Post.java index 301301a1ff..bfcbfeb0fd 100644 --- a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/list/fulldomain/Post.java +++ b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/list/fulldomain/Post.java @@ -10,10 +10,9 @@ import jakarta.persistence.Lob; import jakarta.persistence.ManyToOne; import jakarta.persistence.OneToMany; import java.util.List; -import lombok.Data; +import java.util.Objects; @Entity -@Data public class Post { @Id @@ -29,4 +28,63 @@ public class Post { @JsonBackReference @ManyToOne private User author; + + public Post() { + } + + public Long getId() { + return this.id; + } + + public String getContent() { + return this.content; + } + + public List getComments() { + return this.comments; + } + + public User getAuthor() { + return this.author; + } + + public void setId(Long id) { + this.id = id; + } + + public void setContent(String content) { + this.content = content; + } + + public void setComments(List comments) { + this.comments = comments; + } + + public void setAuthor(User author) { + this.author = author; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + + Post post = (Post) o; + + return Objects.equals(id, post.id); + } + + @Override + public int hashCode() { + return id != null ? id.hashCode() : 0; + } + + public String toString() { + return "Post(id=" + this.getId() + ", content=" + this.getContent() + ", comments=" + this.getComments() + ", author=" + + this.getAuthor() + ")"; + } } diff --git a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/list/fulldomain/Profile.java b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/list/fulldomain/Profile.java index 9e29eec2aa..06a453b42a 100644 --- a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/list/fulldomain/Profile.java +++ b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/list/fulldomain/Profile.java @@ -6,10 +6,9 @@ import jakarta.persistence.Id; import jakarta.persistence.JoinColumn; import jakarta.persistence.Lob; import jakarta.persistence.OneToOne; -import lombok.Data; +import java.util.Objects; @Entity -@Data public class Profile { @Id @@ -24,5 +23,72 @@ public class Profile { @OneToOne(mappedBy = "profile") @JoinColumn(unique = true) private User user; + + public Profile() { + } + + public Long getId() { + return this.id; + } + + public String getBiography() { + return this.biography; + } + + public String getWebsite() { + return this.website; + } + + public String getProfilePictureUrl() { + return this.profilePictureUrl; + } + + public User getUser() { + return this.user; + } + + public void setId(Long id) { + this.id = id; + } + + public void setBiography(String biography) { + this.biography = biography; + } + + public void setWebsite(String website) { + this.website = website; + } + + public void setProfilePictureUrl(String profilePictureUrl) { + this.profilePictureUrl = profilePictureUrl; + } + + public void setUser(User user) { + this.user = user; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + + Profile profile = (Profile) o; + + return Objects.equals(id, profile.id); + } + + @Override + public int hashCode() { + return id != null ? id.hashCode() : 0; + } + + public String toString() { + return "Profile(id=" + this.getId() + ", biography=" + this.getBiography() + ", website=" + this.getWebsite() + + ", profilePictureUrl=" + this.getProfilePictureUrl() + ", user=" + this.getUser() + ")"; + } } diff --git a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/list/fulldomain/User.java b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/list/fulldomain/User.java index 48f733e27a..4f0c26d0a1 100644 --- a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/list/fulldomain/User.java +++ b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/list/fulldomain/User.java @@ -10,9 +10,8 @@ import jakarta.persistence.OneToMany; import jakarta.persistence.OneToOne; import jakarta.persistence.Table; import java.util.List; -import lombok.Data; +import java.util.Objects; -@Data @Entity(name = "simple_user") @Table(name = "simple_user") public class User { @@ -33,4 +32,79 @@ public class User { @ManyToMany(mappedBy = "members", fetch = FetchType.EAGER) private List groups; + + public User() { + } + + public Long getId() { + return this.id; + } + + public String getUsername() { + return this.username; + } + + public String getEmail() { + return this.email; + } + + public Profile getProfile() { + return this.profile; + } + + public List getPosts() { + return this.posts; + } + + public List getGroups() { + return this.groups; + } + + public void setId(Long id) { + this.id = id; + } + + public void setUsername(String username) { + this.username = username; + } + + public void setEmail(String email) { + this.email = email; + } + + public void setProfile(Profile profile) { + this.profile = profile; + } + + public void setPosts(List posts) { + this.posts = posts; + } + + public void setGroups(List groups) { + this.groups = groups; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + + User user = (User) o; + + return Objects.equals(id, user.id); + } + + @Override + public int hashCode() { + return id != null ? id.hashCode() : 0; + } + + public String toString() { + return "User(id=" + this.getId() + ", username=" + this.getUsername() + ", email=" + this.getEmail() + ", profile=" + + this.getProfile() + ", posts=" + this.getPosts() + ", groups=" + this.getGroups() + ")"; + } } \ No newline at end of file diff --git a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/list/moderatedomain/Group.java b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/list/moderatedomain/Group.java index 0460f77a60..10ed2f37e8 100644 --- a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/list/moderatedomain/Group.java +++ b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/list/moderatedomain/Group.java @@ -6,9 +6,8 @@ import jakarta.persistence.Id; import jakarta.persistence.ManyToMany; import jakarta.persistence.Table; import java.util.List; -import lombok.Data; +import java.util.Objects; -@Data @Entity(name = "interest_group") @Table(name = "interest_group") public class Group { @@ -20,4 +19,54 @@ public class Group { @ManyToMany(fetch = FetchType.EAGER) private List members; + + public Group() { + } + + public Long getId() { + return this.id; + } + + public String getName() { + return this.name; + } + + public List getMembers() { + return this.members; + } + + public void setId(Long id) { + this.id = id; + } + + public void setName(String name) { + this.name = name; + } + + public void setMembers(List members) { + this.members = members; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + + Group group = (Group) o; + + return Objects.equals(id, group.id); + } + + @Override + public int hashCode() { + return id != null ? id.hashCode() : 0; + } + + public String toString() { + return "Group(id=" + this.getId() + ", name=" + this.getName() + ", members=" + this.getMembers() + ")"; + } } diff --git a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/list/moderatedomain/Post.java b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/list/moderatedomain/Post.java index faef97b212..479d0cfdd3 100644 --- a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/list/moderatedomain/Post.java +++ b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/list/moderatedomain/Post.java @@ -5,10 +5,9 @@ import jakarta.persistence.Entity; import jakarta.persistence.Id; import jakarta.persistence.Lob; import jakarta.persistence.ManyToOne; -import lombok.Data; +import java.util.Objects; @Entity -@Data public class Post { @Id @@ -20,4 +19,55 @@ public class Post { @JsonBackReference @ManyToOne private User author; + + public Post() { + } + + public Long getId() { + return this.id; + } + + public String getContent() { + return this.content; + } + + public User getAuthor() { + return this.author; + } + + public void setId(Long id) { + this.id = id; + } + + public void setContent(String content) { + this.content = content; + } + + public void setAuthor(User author) { + this.author = author; + } + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + + Post post = (Post) o; + + return Objects.equals(id, post.id); + } + + @Override + public int hashCode() { + return id != null ? id.hashCode() : 0; + } + + public String toString() { + return "Post(id=" + this.getId() + ", content=" + this.getContent() + ", author=" + this.getAuthor() + ")"; + } } diff --git a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/list/moderatedomain/User.java b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/list/moderatedomain/User.java index a58f6dd9e5..e3d7925d56 100644 --- a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/list/moderatedomain/User.java +++ b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/list/moderatedomain/User.java @@ -9,9 +9,7 @@ import jakarta.persistence.OneToMany; import jakarta.persistence.Table; import java.util.List; import java.util.Objects; -import lombok.Data; -@Data @Entity(name = "simple_user") @Table(name = "simple_user") public class User { @@ -25,6 +23,41 @@ public class User { @OneToMany(cascade = CascadeType.ALL, mappedBy = "author", fetch = FetchType.EAGER) protected List posts; + public User() { + } + + public Long getId() { + return this.id; + } + + public String getUsername() { + return this.username; + } + + public String getEmail() { + return this.email; + } + + public List getPosts() { + return this.posts; + } + + public void setId(Long id) { + this.id = id; + } + + public void setUsername(String username) { + this.username = username; + } + + public void setEmail(String email) { + this.email = email; + } + + public void setPosts(List posts) { + this.posts = posts; + } + @Override public boolean equals(Object o) { if (this == o) { @@ -43,4 +76,9 @@ public class User { public int hashCode() { return id != null ? id.hashCode() : 0; } + + public String toString() { + return "User(id=" + this.getId() + ", username=" + this.getUsername() + ", email=" + this.getEmail() + ", posts=" + this.getPosts() + + ")"; + } } \ No newline at end of file diff --git a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/list/simpledomain/Post.java b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/list/simpledomain/Post.java index 35c436357f..159e95bd70 100644 --- a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/list/simpledomain/Post.java +++ b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/list/simpledomain/Post.java @@ -5,10 +5,9 @@ import jakarta.persistence.Entity; import jakarta.persistence.Id; import jakarta.persistence.Lob; import jakarta.persistence.ManyToOne; -import lombok.Data; +import java.util.Objects; @Entity -@Data public class Post { @Id @@ -20,4 +19,54 @@ public class Post { @JsonBackReference @ManyToOne private User author; + + public Post() { + } + + public Long getId() { + return this.id; + } + + public String getContent() { + return this.content; + } + + public User getAuthor() { + return this.author; + } + + public void setId(Long id) { + this.id = id; + } + + public void setContent(String content) { + this.content = content; + } + + public void setAuthor(User author) { + this.author = author; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + + Post post = (Post) o; + + return Objects.equals(id, post.id); + } + + @Override + public int hashCode() { + return id != null ? id.hashCode() : 0; + } + + public String toString() { + return "Post(id=" + this.getId() + ", content=" + this.getContent() + ", author=" + this.getAuthor() + ")"; + } } diff --git a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/list/simpledomain/User.java b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/list/simpledomain/User.java index 6495761c18..ba861b8bc1 100644 --- a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/list/simpledomain/User.java +++ b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/list/simpledomain/User.java @@ -8,9 +8,8 @@ import jakarta.persistence.Id; import jakarta.persistence.OneToMany; import jakarta.persistence.Table; import java.util.List; -import lombok.Data; +import java.util.Objects; -@Data @Entity(name = "simple_user") @Table(name = "simple_user") public class User { @@ -23,4 +22,63 @@ public class User { @JsonManagedReference @OneToMany(cascade = CascadeType.ALL, mappedBy = "author", fetch = FetchType.EAGER) protected List posts; + + public User() { + } + + public Long getId() { + return this.id; + } + + public String getUsername() { + return this.username; + } + + public String getEmail() { + return this.email; + } + + public List getPosts() { + return this.posts; + } + + public void setId(Long id) { + this.id = id; + } + + public void setUsername(String username) { + this.username = username; + } + + public void setEmail(String email) { + this.email = email; + } + + public void setPosts(List posts) { + this.posts = posts; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + + User user = (User) o; + + return Objects.equals(id, user.id); + } + + @Override + public int hashCode() { + return id != null ? id.hashCode() : 0; + } + + public String toString() { + return "User(id=" + this.getId() + ", username=" + this.getUsername() + ", email=" + this.getEmail() + ", posts=" + this.getPosts() + + ")"; + } } \ No newline at end of file diff --git a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/set/fulldomain/Comment.java b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/set/fulldomain/Comment.java index ab935de4ee..be80c53308 100644 --- a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/set/fulldomain/Comment.java +++ b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/set/fulldomain/Comment.java @@ -5,9 +5,7 @@ import jakarta.persistence.Entity; import jakarta.persistence.Id; import jakarta.persistence.ManyToOne; import java.util.Objects; -import lombok.Data; -@Data @Entity public class Comment { @@ -23,6 +21,41 @@ public class Comment { @ManyToOne private Post post; + public Comment() { + } + + public Long getId() { + return this.id; + } + + public String getText() { + return this.text; + } + + public User getAuthor() { + return this.author; + } + + public Post getPost() { + return this.post; + } + + public void setId(Long id) { + this.id = id; + } + + public void setText(String text) { + this.text = text; + } + + public void setAuthor(User author) { + this.author = author; + } + + public void setPost(Post post) { + this.post = post; + } + @Override public boolean equals(Object o) { if (this == o) { @@ -41,4 +74,9 @@ public class Comment { public int hashCode() { return id != null ? id.hashCode() : 0; } + + public String toString() { + return "Comment(id=" + this.getId() + ", text=" + this.getText() + ", author=" + this.getAuthor() + ", post=" + this.getPost() + + ")"; + } } diff --git a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/set/fulldomain/Group.java b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/set/fulldomain/Group.java index de0ba9a59d..dc8cc7dcb1 100644 --- a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/set/fulldomain/Group.java +++ b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/set/fulldomain/Group.java @@ -7,9 +7,7 @@ import jakarta.persistence.ManyToMany; import jakarta.persistence.Table; import java.util.Objects; import java.util.Set; -import lombok.Data; -@Data @Entity(name = "interest_group") @Table(name = "interest_group") public class Group { @@ -22,6 +20,33 @@ public class Group { @ManyToMany(fetch = FetchType.EAGER) private Set members; + public Group() { + } + + public Long getId() { + return this.id; + } + + public String getName() { + return this.name; + } + + public Set getMembers() { + return this.members; + } + + public void setId(Long id) { + this.id = id; + } + + public void setName(String name) { + this.name = name; + } + + public void setMembers(Set members) { + this.members = members; + } + @Override public boolean equals(Object o) { if (this == o) { @@ -40,4 +65,8 @@ public class Group { public int hashCode() { return id != null ? id.hashCode() : 0; } + + public String toString() { + return "Group(id=" + this.getId() + ", name=" + this.getName() + ", members=" + this.getMembers() + ")"; + } } diff --git a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/set/fulldomain/Post.java b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/set/fulldomain/Post.java index 7c4913fbec..1486c6fe03 100644 --- a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/set/fulldomain/Post.java +++ b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/set/fulldomain/Post.java @@ -11,10 +11,8 @@ import jakarta.persistence.ManyToOne; import jakarta.persistence.OneToMany; import java.util.Objects; import java.util.Set; -import lombok.Data; @Entity -@Data public class Post { @Id @@ -31,6 +29,41 @@ public class Post { @ManyToOne private User author; + public Post() { + } + + public Long getId() { + return this.id; + } + + public String getContent() { + return this.content; + } + + public Set getComments() { + return this.comments; + } + + public User getAuthor() { + return this.author; + } + + public void setId(Long id) { + this.id = id; + } + + public void setContent(String content) { + this.content = content; + } + + public void setComments(Set comments) { + this.comments = comments; + } + + public void setAuthor(User author) { + this.author = author; + } + @Override public boolean equals(Object o) { if (this == o) { @@ -49,4 +82,9 @@ public class Post { public int hashCode() { return id != null ? id.hashCode() : 0; } + + public String toString() { + return "Post(id=" + this.getId() + ", content=" + this.getContent() + ", comments=" + this.getComments() + ", author=" + + this.getAuthor() + ")"; + } } diff --git a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/set/fulldomain/Profile.java b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/set/fulldomain/Profile.java index 914702a373..f13fc276ca 100644 --- a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/set/fulldomain/Profile.java +++ b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/set/fulldomain/Profile.java @@ -6,10 +6,9 @@ import jakarta.persistence.Id; import jakarta.persistence.JoinColumn; import jakarta.persistence.Lob; import jakarta.persistence.OneToOne; -import lombok.Data; +import java.util.Objects; @Entity -@Data public class Profile { @Id @@ -24,5 +23,72 @@ public class Profile { @OneToOne(mappedBy = "profile") @JoinColumn(unique = true) private User user; + + public Profile() { + } + + public Long getId() { + return this.id; + } + + public String getBiography() { + return this.biography; + } + + public String getWebsite() { + return this.website; + } + + public String getProfilePictureUrl() { + return this.profilePictureUrl; + } + + public User getUser() { + return this.user; + } + + public void setId(Long id) { + this.id = id; + } + + public void setBiography(String biography) { + this.biography = biography; + } + + public void setWebsite(String website) { + this.website = website; + } + + public void setProfilePictureUrl(String profilePictureUrl) { + this.profilePictureUrl = profilePictureUrl; + } + + public void setUser(User user) { + this.user = user; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + + Profile profile = (Profile) o; + + return Objects.equals(id, profile.id); + } + + @Override + public int hashCode() { + return id != null ? id.hashCode() : 0; + } + + public String toString() { + return "Profile(id=" + this.getId() + ", biography=" + this.getBiography() + ", website=" + this.getWebsite() + + ", profilePictureUrl=" + this.getProfilePictureUrl() + ", user=" + this.getUser() + ")"; + } } diff --git a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/set/fulldomain/User.java b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/set/fulldomain/User.java index a0efbac57a..0fe9603e9b 100644 --- a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/set/fulldomain/User.java +++ b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/set/fulldomain/User.java @@ -11,9 +11,7 @@ import jakarta.persistence.OneToOne; import jakarta.persistence.Table; import java.util.Objects; import java.util.Set; -import lombok.Data; -@Data @Entity(name = "simple_user") @Table(name = "simple_user") public class User { @@ -35,6 +33,57 @@ public class User { @ManyToMany(mappedBy = "members", fetch = FetchType.EAGER) private Set groups; + public User() { + } + + public Long getId() { + return this.id; + } + + public String getUsername() { + return this.username; + } + + public String getEmail() { + return this.email; + } + + public Profile getProfile() { + return this.profile; + } + + public Set getPosts() { + return this.posts; + } + + public Set getGroups() { + return this.groups; + } + + public void setId(Long id) { + this.id = id; + } + + public void setUsername(String username) { + this.username = username; + } + + public void setEmail(String email) { + this.email = email; + } + + public void setProfile(Profile profile) { + this.profile = profile; + } + + public void setPosts(Set posts) { + this.posts = posts; + } + + public void setGroups(Set groups) { + this.groups = groups; + } + @Override public boolean equals(Object o) { if (this == o) { @@ -53,4 +102,9 @@ public class User { public int hashCode() { return id != null ? id.hashCode() : 0; } + + public String toString() { + return "User(id=" + this.getId() + ", username=" + this.getUsername() + ", email=" + this.getEmail() + ", profile=" + + this.getProfile() + ", posts=" + this.getPosts() + ", groups=" + this.getGroups() + ")"; + } } \ No newline at end of file diff --git a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/set/lazy/moderatedomain/Group.java b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/set/lazy/moderatedomain/Group.java index 28e94f542b..3165441ae4 100644 --- a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/set/lazy/moderatedomain/Group.java +++ b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/set/lazy/moderatedomain/Group.java @@ -4,10 +4,9 @@ import jakarta.persistence.Entity; import jakarta.persistence.Id; import jakarta.persistence.ManyToMany; import jakarta.persistence.Table; +import java.util.Objects; import java.util.Set; -import lombok.Data; -@Data @Entity(name = "interest_group") @Table(name = "interest_group") public class Group { @@ -19,4 +18,54 @@ public class Group { @ManyToMany private Set members; + + public Group() { + } + + public Long getId() { + return this.id; + } + + public String getName() { + return this.name; + } + + public Set getMembers() { + return this.members; + } + + public void setId(Long id) { + this.id = id; + } + + public void setName(String name) { + this.name = name; + } + + public void setMembers(Set members) { + this.members = members; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + + Group group = (Group) o; + + return Objects.equals(id, group.id); + } + + @Override + public int hashCode() { + return id != null ? id.hashCode() : 0; + } + + public String toString() { + return "Group(id=" + this.getId() + ", name=" + this.getName() + ", members=" + this.getMembers() + ")"; + } } diff --git a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/set/lazy/moderatedomain/Post.java b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/set/lazy/moderatedomain/Post.java index 00edc08e5f..f1a8aadc15 100644 --- a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/set/lazy/moderatedomain/Post.java +++ b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/set/lazy/moderatedomain/Post.java @@ -6,10 +6,8 @@ import jakarta.persistence.Id; import jakarta.persistence.Lob; import jakarta.persistence.ManyToOne; import java.util.Objects; -import lombok.Data; @Entity -@Data public class Post { @Id @@ -22,6 +20,33 @@ public class Post { @ManyToOne private User author; + public Post() { + } + + public Long getId() { + return this.id; + } + + public String getContent() { + return this.content; + } + + public User getAuthor() { + return this.author; + } + + public void setId(Long id) { + this.id = id; + } + + public void setContent(String content) { + this.content = content; + } + + public void setAuthor(User author) { + this.author = author; + } + @Override public boolean equals(Object o) { if (this == o) { @@ -40,4 +65,8 @@ public class Post { public int hashCode() { return id != null ? id.hashCode() : 0; } + + public String toString() { + return "Post(id=" + this.getId() + ", content=" + this.getContent() + ", author=" + this.getAuthor() + ")"; + } } diff --git a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/set/lazy/moderatedomain/User.java b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/set/lazy/moderatedomain/User.java index adb4db8921..fdba1e7efc 100644 --- a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/set/lazy/moderatedomain/User.java +++ b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/set/lazy/moderatedomain/User.java @@ -8,9 +8,7 @@ import jakarta.persistence.OneToMany; import jakarta.persistence.Table; import java.util.Objects; import java.util.Set; -import lombok.Data; -@Data @Entity(name = "simple_user") @Table(name = "simple_user") public class User { @@ -24,6 +22,41 @@ public class User { @OneToMany(cascade = CascadeType.ALL, mappedBy = "author") protected Set posts; + public User() { + } + + public Long getId() { + return this.id; + } + + public String getUsername() { + return this.username; + } + + public String getEmail() { + return this.email; + } + + public Set getPosts() { + return this.posts; + } + + public void setId(Long id) { + this.id = id; + } + + public void setUsername(String username) { + this.username = username; + } + + public void setEmail(String email) { + this.email = email; + } + + public void setPosts(Set posts) { + this.posts = posts; + } + @Override public boolean equals(Object o) { if (this == o) { @@ -42,4 +75,9 @@ public class User { public int hashCode() { return id != null ? id.hashCode() : 0; } + + public String toString() { + return "User(id=" + this.getId() + ", username=" + this.getUsername() + ", email=" + this.getEmail() + ", posts=" + this.getPosts() + + ")"; + } } \ No newline at end of file diff --git a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/set/moderatedomain/Group.java b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/set/moderatedomain/Group.java index 6331183ac9..470204074c 100644 --- a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/set/moderatedomain/Group.java +++ b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/set/moderatedomain/Group.java @@ -5,10 +5,9 @@ import jakarta.persistence.FetchType; import jakarta.persistence.Id; import jakarta.persistence.ManyToMany; import jakarta.persistence.Table; +import java.util.Objects; import java.util.Set; -import lombok.Data; -@Data @Entity(name = "interest_group") @Table(name = "interest_group") public class Group { @@ -20,4 +19,54 @@ public class Group { @ManyToMany(fetch = FetchType.EAGER) private Set members; + + public Group() { + } + + public Long getId() { + return this.id; + } + + public String getName() { + return this.name; + } + + public Set getMembers() { + return this.members; + } + + public void setId(Long id) { + this.id = id; + } + + public void setName(String name) { + this.name = name; + } + + public void setMembers(Set members) { + this.members = members; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + + Group group = (Group) o; + + return Objects.equals(id, group.id); + } + + @Override + public int hashCode() { + return id != null ? id.hashCode() : 0; + } + + public String toString() { + return "Group(id=" + this.getId() + ", name=" + this.getName() + ", members=" + this.getMembers() + ")"; + } } diff --git a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/set/moderatedomain/Post.java b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/set/moderatedomain/Post.java index 02449a3402..c81ffae02d 100644 --- a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/set/moderatedomain/Post.java +++ b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/set/moderatedomain/Post.java @@ -6,10 +6,8 @@ import jakarta.persistence.Id; import jakarta.persistence.Lob; import jakarta.persistence.ManyToOne; import java.util.Objects; -import lombok.Data; @Entity -@Data public class Post { @Id @@ -22,6 +20,33 @@ public class Post { @ManyToOne private User author; + public Post() { + } + + public Long getId() { + return this.id; + } + + public String getContent() { + return this.content; + } + + public User getAuthor() { + return this.author; + } + + public void setId(Long id) { + this.id = id; + } + + public void setContent(String content) { + this.content = content; + } + + public void setAuthor(User author) { + this.author = author; + } + @Override public boolean equals(Object o) { if (this == o) { @@ -40,4 +65,8 @@ public class Post { public int hashCode() { return id != null ? id.hashCode() : 0; } + + public String toString() { + return "Post(id=" + this.getId() + ", content=" + this.getContent() + ", author=" + this.getAuthor() + ")"; + } } diff --git a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/set/moderatedomain/User.java b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/set/moderatedomain/User.java index 89f9736c41..54a935f382 100644 --- a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/set/moderatedomain/User.java +++ b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/set/moderatedomain/User.java @@ -9,9 +9,7 @@ import jakarta.persistence.OneToMany; import jakarta.persistence.Table; import java.util.Objects; import java.util.Set; -import lombok.Data; -@Data @Entity(name = "simple_user") @Table(name = "simple_user") public class User { @@ -25,6 +23,41 @@ public class User { @OneToMany(cascade = CascadeType.ALL, mappedBy = "author", fetch = FetchType.EAGER) protected Set posts; + public User() { + } + + public Long getId() { + return this.id; + } + + public String getUsername() { + return this.username; + } + + public String getEmail() { + return this.email; + } + + public Set getPosts() { + return this.posts; + } + + public void setId(Long id) { + this.id = id; + } + + public void setUsername(String username) { + this.username = username; + } + + public void setEmail(String email) { + this.email = email; + } + + public void setPosts(Set posts) { + this.posts = posts; + } + @Override public boolean equals(Object o) { if (this == o) { @@ -43,4 +76,9 @@ public class User { public int hashCode() { return id != null ? id.hashCode() : 0; } + + public String toString() { + return "User(id=" + this.getId() + ", username=" + this.getUsername() + ", email=" + this.getEmail() + ", posts=" + this.getPosts() + + ")"; + } } \ No newline at end of file diff --git a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/set/simpledomain/Post.java b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/set/simpledomain/Post.java index 69c137e350..fa0f334aba 100644 --- a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/set/simpledomain/Post.java +++ b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/set/simpledomain/Post.java @@ -6,10 +6,8 @@ import jakarta.persistence.Id; import jakarta.persistence.Lob; import jakarta.persistence.ManyToOne; import java.util.Objects; -import lombok.Data; @Entity -@Data public class Post { @Id @@ -22,6 +20,33 @@ public class Post { @ManyToOne private User author; + public Post() { + } + + public Long getId() { + return this.id; + } + + public String getContent() { + return this.content; + } + + public User getAuthor() { + return this.author; + } + + public void setId(Long id) { + this.id = id; + } + + public void setContent(String content) { + this.content = content; + } + + public void setAuthor(User author) { + this.author = author; + } + @Override public boolean equals(Object o) { if (this == o) { @@ -40,4 +65,8 @@ public class Post { public int hashCode() { return id != null ? id.hashCode() : 0; } + + public String toString() { + return "Post(id=" + this.getId() + ", content=" + this.getContent() + ", author=" + this.getAuthor() + ")"; + } } diff --git a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/set/simpledomain/User.java b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/set/simpledomain/User.java index 481ef14499..a571c50f95 100644 --- a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/set/simpledomain/User.java +++ b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/eager/set/simpledomain/User.java @@ -7,10 +7,9 @@ import jakarta.persistence.FetchType; import jakarta.persistence.Id; import jakarta.persistence.OneToMany; import jakarta.persistence.Table; +import java.util.Objects; import java.util.Set; -import lombok.Data; -@Data @Entity(name = "simple_user") @Table(name = "simple_user") public class User { @@ -24,4 +23,63 @@ public class User { @OneToMany(cascade = CascadeType.ALL, mappedBy = "author", fetch = FetchType.EAGER) protected Set posts; + public User() { + } + + public Long getId() { + return this.id; + } + + public String getUsername() { + return this.username; + } + + public String getEmail() { + return this.email; + } + + public Set getPosts() { + return this.posts; + } + + public void setId(Long id) { + this.id = id; + } + + public void setUsername(String username) { + this.username = username; + } + + public void setEmail(String email) { + this.email = email; + } + + public void setPosts(Set posts) { + this.posts = posts; + } + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + + User user = (User) o; + + return Objects.equals(id, user.id); + } + + @Override + public int hashCode() { + return id != null ? id.hashCode() : 0; + } + + public String toString() { + return "User(id=" + this.getId() + ", username=" + this.getUsername() + ", email=" + this.getEmail() + ", posts=" + this.getPosts() + + ")"; + } } \ No newline at end of file diff --git a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/lazy/list/moderatedomain/Group.java b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/lazy/list/moderatedomain/Group.java index f74272cb99..3a20ccf8fb 100644 --- a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/lazy/list/moderatedomain/Group.java +++ b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/lazy/list/moderatedomain/Group.java @@ -5,9 +5,8 @@ import jakarta.persistence.Id; import jakarta.persistence.ManyToMany; import jakarta.persistence.Table; import java.util.List; -import lombok.Data; +import java.util.Objects; -@Data @Entity(name = "interest_group") @Table(name = "interest_group") public class Group { @@ -19,4 +18,54 @@ public class Group { @ManyToMany private List members; + + public Group() { + } + + public Long getId() { + return this.id; + } + + public String getName() { + return this.name; + } + + public List getMembers() { + return this.members; + } + + public void setId(Long id) { + this.id = id; + } + + public void setName(String name) { + this.name = name; + } + + public void setMembers(List members) { + this.members = members; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + + Group group = (Group) o; + + return Objects.equals(id, group.id); + } + + @Override + public int hashCode() { + return id != null ? id.hashCode() : 0; + } + + public String toString() { + return "Group(id=" + this.getId() + ", name=" + this.getName() + ", members=" + this.getMembers() + ")"; + } } diff --git a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/lazy/list/moderatedomain/GroupService.java b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/lazy/list/moderatedomain/GroupService.java index 7ee2b83566..4bd746fef3 100644 --- a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/lazy/list/moderatedomain/GroupService.java +++ b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/lazy/list/moderatedomain/GroupService.java @@ -25,6 +25,7 @@ public class GroupService { public List findAll() { return groupRepository.findAll(); } + public int countNumberOfRequestsWithFunction(ToIntFunction> function) { return function.applyAsInt(groupRepository.findAll()); } diff --git a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/lazy/list/moderatedomain/Post.java b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/lazy/list/moderatedomain/Post.java index 3d2dc2a89e..3d7eb1b6d9 100644 --- a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/lazy/list/moderatedomain/Post.java +++ b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/lazy/list/moderatedomain/Post.java @@ -5,10 +5,9 @@ import jakarta.persistence.Entity; import jakarta.persistence.Id; import jakarta.persistence.Lob; import jakarta.persistence.ManyToOne; -import lombok.Data; +import java.util.Objects; @Entity -@Data public class Post { @Id @@ -20,4 +19,54 @@ public class Post { @JsonBackReference @ManyToOne private User author; + + public Post() { + } + + public Long getId() { + return this.id; + } + + public String getContent() { + return this.content; + } + + public User getAuthor() { + return this.author; + } + + public void setId(Long id) { + this.id = id; + } + + public void setContent(String content) { + this.content = content; + } + + public void setAuthor(User author) { + this.author = author; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + + Post post = (Post) o; + + return Objects.equals(id, post.id); + } + + @Override + public int hashCode() { + return id != null ? id.hashCode() : 0; + } + + public String toString() { + return "Post(id=" + this.getId() + ", content=" + this.getContent() + ", author=" + this.getAuthor() + ")"; + } } diff --git a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/lazy/list/moderatedomain/User.java b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/lazy/list/moderatedomain/User.java index d2c19febca..c3b238d626 100644 --- a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/lazy/list/moderatedomain/User.java +++ b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/listvsset/lazy/list/moderatedomain/User.java @@ -8,9 +8,7 @@ import jakarta.persistence.OneToMany; import jakarta.persistence.Table; import java.util.List; import java.util.Objects; -import lombok.Data; -@Data @Entity(name = "simple_user") @Table(name = "simple_user") public class User { @@ -24,6 +22,9 @@ public class User { @OneToMany(cascade = CascadeType.ALL, mappedBy = "author") protected List posts; + public User() { + } + @Override public boolean equals(Object o) { if (this == o) { @@ -42,4 +43,41 @@ public class User { public int hashCode() { return id != null ? id.hashCode() : 0; } + + public Long getId() { + return this.id; + } + + public String getUsername() { + return this.username; + } + + public String getEmail() { + return this.email; + } + + public List getPosts() { + return this.posts; + } + + public void setId(Long id) { + this.id = id; + } + + public void setUsername(String username) { + this.username = username; + } + + public void setEmail(String email) { + this.email = email; + } + + public void setPosts(List posts) { + this.posts = posts; + } + + public String toString() { + return "User(id=" + this.getId() + ", username=" + this.getUsername() + ", email=" + this.getEmail() + ", posts=" + this.getPosts() + + ")"; + } } \ No newline at end of file diff --git a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/nplusone/defaultfetch/list/Post.java b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/nplusone/defaultfetch/list/Post.java index b0ad40ec06..271b6578e1 100644 --- a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/nplusone/defaultfetch/list/Post.java +++ b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/nplusone/defaultfetch/list/Post.java @@ -5,10 +5,9 @@ import jakarta.persistence.Entity; import jakarta.persistence.Id; import jakarta.persistence.Lob; import jakarta.persistence.ManyToOne; -import lombok.Data; +import java.util.Objects; @Entity -@Data public class Post { @Id @@ -20,4 +19,47 @@ public class Post { @JsonBackReference @ManyToOne private User author; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public User getAuthor() { + return author; + } + + public void setAuthor(User author) { + this.author = author; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + + Post post = (Post) o; + + return Objects.equals(id, post.id); + } + + @Override + public int hashCode() { + return id != null ? id.hashCode() : 0; + } } diff --git a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/nplusone/defaultfetch/list/User.java b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/nplusone/defaultfetch/list/User.java index 81b570a292..e5c5090d38 100644 --- a/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/nplusone/defaultfetch/list/User.java +++ b/persistence-modules/spring-boot-persistence-4/src/main/java/com/baeldung/nplusone/defaultfetch/list/User.java @@ -7,9 +7,8 @@ import jakarta.persistence.Id; import jakarta.persistence.OneToMany; import jakarta.persistence.Table; import java.util.List; -import lombok.Data; +import java.util.Objects; -@Data @Entity(name = "simple_user") @Table(name = "simple_user") public class User { @@ -21,5 +20,56 @@ public class User { @JsonManagedReference @OneToMany(cascade = CascadeType.ALL, mappedBy = "author") - protected List posts; + private List posts; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public List getPosts() { + return posts; + } + + public void setPosts(List posts) { + this.posts = posts; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + + User user = (User) o; + + return Objects.equals(id, user.id); + } + + @Override + public int hashCode() { + return id != null ? id.hashCode() : 0; + } } \ No newline at end of file diff --git a/persistence-modules/spring-boot-persistence-4/src/test/java/com/baeldung/listvsset/BaseNPlusOneIntegrationTest.java b/persistence-modules/spring-boot-persistence-4/src/test/java/com/baeldung/listvsset/BaseNPlusOneIntegrationTest.java index 4e669dadc4..adc4d07170 100644 --- a/persistence-modules/spring-boot-persistence-4/src/test/java/com/baeldung/listvsset/BaseNPlusOneIntegrationTest.java +++ b/persistence-modules/spring-boot-persistence-4/src/test/java/com/baeldung/listvsset/BaseNPlusOneIntegrationTest.java @@ -58,16 +58,16 @@ abstract public class BaseNPlusOneIntegrationTest extends ParametrizationAwar @Test void givenCorrectConfigurationWhenStartContextThenRepositoryIsPresent() { - assertThat(getService()).isNotNull(); + assertThat(getUserService()).isNotNull(); } @Test void givenCorrectDatabaseWhenStartThenDatabaseIsNotEmpty() { - List result = getService().findAll(); + List result = getUserService().findAll(); assertThat(result).isNotEmpty(); } - protected Service getService() { + protected Service getUserService() { Class parametrization = getParametrizationClass().get(0); return (Service) serviceMap.get(parametrization); } diff --git a/persistence-modules/spring-boot-persistence-4/src/test/java/com/baeldung/listvsset/lazy/list/NPlusOneLazyModerateDomainIntegrationTest.java b/persistence-modules/spring-boot-persistence-4/src/test/java/com/baeldung/listvsset/lazy/list/NPlusOneLazyModerateDomainIntegrationTest.java index 2544a73b24..f4a35a8e38 100644 --- a/persistence-modules/spring-boot-persistence-4/src/test/java/com/baeldung/listvsset/lazy/list/NPlusOneLazyModerateDomainIntegrationTest.java +++ b/persistence-modules/spring-boot-persistence-4/src/test/java/com/baeldung/listvsset/lazy/list/NPlusOneLazyModerateDomainIntegrationTest.java @@ -31,14 +31,14 @@ class NPlusOneLazyModerateDomainIntegrationTest extends BaseNPlusOneIntegrationT @Test void givenLazyListBasedUser_whenFetchingAllUsers_thenIssueOneRequest() { - getService().findAll(); + getUserService().findAll(); assertSelectCount(1); } @ParameterizedTest @ValueSource(longs = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}) void givenLazyListBasedUser_whenFetchingOneUser_thenIssueOneRequest(Long id) { - getService().getUserById(id); + getUserService().getUserById(id); assertSelectCount(1); } diff --git a/persistence-modules/spring-boot-persistence-4/src/test/java/com/baeldung/listvsset/lazy/list/NPlusOneLazySimpleDomainIntegrationTest.java b/persistence-modules/spring-boot-persistence-4/src/test/java/com/baeldung/listvsset/lazy/list/NPlusOneLazySimpleDomainIntegrationTest.java index 5d61b76d5d..583b67ff0c 100644 --- a/persistence-modules/spring-boot-persistence-4/src/test/java/com/baeldung/listvsset/lazy/list/NPlusOneLazySimpleDomainIntegrationTest.java +++ b/persistence-modules/spring-boot-persistence-4/src/test/java/com/baeldung/listvsset/lazy/list/NPlusOneLazySimpleDomainIntegrationTest.java @@ -22,13 +22,13 @@ class NPlusOneLazySimpleDomainIntegrationTest extends BaseNPlusOneIntegrationTes @Test void givenLazyListBasedUser_WhenFetchingAllUsers_ThenIssueOneRequests() { - getService().findAll(); + getUserService().findAll(); assertSelectCount(1); } @Test void givenLazyListBasedUser_WhenFetchingAllUsersCheckingPosts_ThenIssueNPlusOneRequests() { - int numberOfRequests = getService().countNumberOfRequestsWithFunction(users -> { + int numberOfRequests = getUserService().countNumberOfRequestsWithFunction(users -> { List> usersWithPosts = users.stream() .map(User::getPosts) @@ -42,7 +42,7 @@ class NPlusOneLazySimpleDomainIntegrationTest extends BaseNPlusOneIntegrationTes @ParameterizedTest @ValueSource(longs = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}) void givenLazyListBasedUser_WhenFetchingOneUser_ThenIssueTwoRequest(Long id) { - getService().getUserByIdWithPredicate(id, user -> !user.getPosts().isEmpty()); + getUserService().getUserByIdWithPredicate(id, user -> !user.getPosts().isEmpty()); assertSelectCount(2); } diff --git a/persistence-modules/spring-boot-persistence-4/src/test/java/com/baeldung/listvsset/list/NPlusOneEagerFullDomainIntegrationTest.java b/persistence-modules/spring-boot-persistence-4/src/test/java/com/baeldung/listvsset/list/NPlusOneEagerFullDomainIntegrationTest.java index 3e7c46f47c..b281bd715f 100644 --- a/persistence-modules/spring-boot-persistence-4/src/test/java/com/baeldung/listvsset/list/NPlusOneEagerFullDomainIntegrationTest.java +++ b/persistence-modules/spring-boot-persistence-4/src/test/java/com/baeldung/listvsset/list/NPlusOneEagerFullDomainIntegrationTest.java @@ -37,7 +37,7 @@ class NPlusOneEagerFullDomainIntegrationTest extends BaseNPlusOneIntegrationTest @ParameterizedTest @MethodSource void givenEagerListBasedUser_WhenFetchingAllUsers_ThenIssueNPlusOneRequests(ToIntFunction> function) { - int numberOfRequests = getService().countNumberOfRequestsWithFunction(function); + int numberOfRequests = getUserService().countNumberOfRequestsWithFunction(function); assertSelectCount(numberOfRequests); } @@ -58,7 +58,7 @@ class NPlusOneEagerFullDomainIntegrationTest extends BaseNPlusOneIntegrationTest @ParameterizedTest @ValueSource(longs = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}) void givenEagerListBasedUser_WhenFetchingOneUser_ThenUseDFS(Long id) { - int numberOfRequests = getService().getUserByIdWithFunction(id, this::countNumberOfRequests); + int numberOfRequests = getUserService().getUserByIdWithFunction(id, this::countNumberOfRequests); assertSelectCount(numberOfRequests); } diff --git a/persistence-modules/spring-boot-persistence-4/src/test/java/com/baeldung/listvsset/list/NPlusOneEagerModerateDomainIntegrationTest.java b/persistence-modules/spring-boot-persistence-4/src/test/java/com/baeldung/listvsset/list/NPlusOneEagerModerateDomainIntegrationTest.java index 5e5549122f..a0b0f4eb10 100644 --- a/persistence-modules/spring-boot-persistence-4/src/test/java/com/baeldung/listvsset/list/NPlusOneEagerModerateDomainIntegrationTest.java +++ b/persistence-modules/spring-boot-persistence-4/src/test/java/com/baeldung/listvsset/list/NPlusOneEagerModerateDomainIntegrationTest.java @@ -34,14 +34,14 @@ class NPlusOneEagerModerateDomainIntegrationTest extends BaseNPlusOneIntegration @Test void givenEagerListBasedUser_whenFetchingAllUsers_thenIssueNPlusOneRequests() { - List users = getService().findAll(); + List users = getUserService().findAll(); assertSelectCount(users.size() + 1); } @ParameterizedTest @ValueSource(longs = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}) void givenEagerListBasedUser_whenFetchingOneUser_thenIssueOneRequest(Long id) { - getService().getUserById(id); + getUserService().getUserById(id); assertSelectCount(1); } diff --git a/persistence-modules/spring-boot-persistence-4/src/test/java/com/baeldung/listvsset/list/NPlusOneEagerSimpleDomainIntegrationTest.java b/persistence-modules/spring-boot-persistence-4/src/test/java/com/baeldung/listvsset/list/NPlusOneEagerSimpleDomainIntegrationTest.java index 0c14ce8e50..957e36e028 100644 --- a/persistence-modules/spring-boot-persistence-4/src/test/java/com/baeldung/listvsset/list/NPlusOneEagerSimpleDomainIntegrationTest.java +++ b/persistence-modules/spring-boot-persistence-4/src/test/java/com/baeldung/listvsset/list/NPlusOneEagerSimpleDomainIntegrationTest.java @@ -26,21 +26,21 @@ class NPlusOneEagerSimpleDomainIntegrationTest extends BaseNPlusOneIntegrationTe @Test void givenEagerListBasedUser_WhenFetchingAllUsers_ThenIssueNPlusOneRequests() { - List users = getService().findAll(); + List users = getUserService().findAll(); assertSelectCount(users.size() + 1); } @ParameterizedTest @ValueSource(longs = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}) void givenEagerListBasedUser_WhenFetchingOneUser_ThenIssueOneRequest(Long id) { - getService().getUserById(id); + getUserService().getUserById(id); assertSelectCount(1); } @ParameterizedTest @ValueSource(longs = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}) void givenEagerListBasedUser_whenDeletePost_ThenIssueSingleUpdate(Long id) { - Optional optionalUser = getService().getUserById(id); + Optional optionalUser = getUserService().getUserById(id); assertSelectCount(1); optionalUser.ifPresent(user -> { List posts = user.getPosts(); @@ -48,10 +48,10 @@ class NPlusOneEagerSimpleDomainIntegrationTest extends BaseNPlusOneIntegrationTe reset(); if (!posts.isEmpty()) { posts.get(0).setAuthor(null); - getService().save(user); + getUserService().save(user); assertSelectCount(1); assertUpdateCount(1); - getService().getUserById(id).ifPresent(updatedUser -> { + getUserService().getUserById(id).ifPresent(updatedUser -> { assertThat(updatedUser.getPosts()).hasSize(originalNumberOfPosts - 1); }); } diff --git a/persistence-modules/spring-boot-persistence-4/src/test/java/com/baeldung/listvsset/set/NPlusOneEagerFullDomainJoinIntegrationTest.java b/persistence-modules/spring-boot-persistence-4/src/test/java/com/baeldung/listvsset/set/NPlusOneEagerFullDomainJoinIntegrationTest.java index 001398607d..0239993741 100644 --- a/persistence-modules/spring-boot-persistence-4/src/test/java/com/baeldung/listvsset/set/NPlusOneEagerFullDomainJoinIntegrationTest.java +++ b/persistence-modules/spring-boot-persistence-4/src/test/java/com/baeldung/listvsset/set/NPlusOneEagerFullDomainJoinIntegrationTest.java @@ -33,7 +33,7 @@ class NPlusOneEagerFullDomainJoinIntegrationTest extends BaseNPlusOneIntegration @Test void givenEagerSetBasedUser_WhenFetchingAllUsers_ThenIssueNPlusOneRequests() { - List users = getService().findAll(); + List users = getUserService().findAll(); assertSelectCount(users.size() + 1); } @@ -43,7 +43,7 @@ class NPlusOneEagerFullDomainJoinIntegrationTest extends BaseNPlusOneIntegration HashMap> visitedMap = new HashMap<>(); visitedMap.put(POSTS, new HashSet<>()); visitedMap.put(USERS, new HashSet<>()); - int numberOfRequests = getService() + int numberOfRequests = getUserService() .getUserByIdWithFunction(id, user -> { int result = 1; visitedMap.get(USERS).add(user.getId()); diff --git a/persistence-modules/spring-boot-persistence-4/src/test/java/com/baeldung/listvsset/set/NPlusOneEagerModerateDomainIntegrationTest.java b/persistence-modules/spring-boot-persistence-4/src/test/java/com/baeldung/listvsset/set/NPlusOneEagerModerateDomainIntegrationTest.java index 55b7bfb287..47211e7bca 100644 --- a/persistence-modules/spring-boot-persistence-4/src/test/java/com/baeldung/listvsset/set/NPlusOneEagerModerateDomainIntegrationTest.java +++ b/persistence-modules/spring-boot-persistence-4/src/test/java/com/baeldung/listvsset/set/NPlusOneEagerModerateDomainIntegrationTest.java @@ -33,14 +33,14 @@ class NPlusOneEagerModerateDomainIntegrationTest extends BaseNPlusOneIntegration @Test void givenEagerSetBasedUser_whenFetchingAllUsers_thenIssueNPlusOneRequests() { - List users = getService().findAll(); + List users = getUserService().findAll(); assertSelectCount(users.size() + 1); } @ParameterizedTest @ValueSource(longs = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}) void givenEagerSetBasedUser_whenFetchingOneUser_thenIssueOneRequest(Long id) { - getService().getUserById(id); + getUserService().getUserById(id); assertSelectCount(1); } diff --git a/persistence-modules/spring-boot-persistence-4/src/test/java/com/baeldung/listvsset/set/NPlusOneEagerSimpleDomainIntegrationTest.java b/persistence-modules/spring-boot-persistence-4/src/test/java/com/baeldung/listvsset/set/NPlusOneEagerSimpleDomainIntegrationTest.java index e6161fa57b..4b939307b6 100644 --- a/persistence-modules/spring-boot-persistence-4/src/test/java/com/baeldung/listvsset/set/NPlusOneEagerSimpleDomainIntegrationTest.java +++ b/persistence-modules/spring-boot-persistence-4/src/test/java/com/baeldung/listvsset/set/NPlusOneEagerSimpleDomainIntegrationTest.java @@ -27,21 +27,21 @@ class NPlusOneEagerSimpleDomainIntegrationTest extends BaseNPlusOneIntegrationTe @Test void givenEagerSetBasedUser_WhenFetchingAllUsers_ThenIssueNPlusOneRequests() { - List users = getService().findAll(); + List users = getUserService().findAll(); assertSelectCount(users.size() + 1); } @ParameterizedTest @ValueSource(longs = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}) void givenEagerSetBasedUser_WhenFetchingOneUser_ThenIssueOneRequest(Long id) { - getService().getUserById(id); + getUserService().getUserById(id); assertSelectCount(1); } @ParameterizedTest @ValueSource(longs = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}) void givenEagerListBasedUser_whenDeletePost_ThenIssueSingleUpdate(Long id) { - Optional optionalUser = getService().getUserById(id); + Optional optionalUser = getUserService().getUserById(id); assertSelectCount(1); optionalUser.ifPresent(user -> { Set posts = user.getPosts(); @@ -49,10 +49,10 @@ class NPlusOneEagerSimpleDomainIntegrationTest extends BaseNPlusOneIntegrationTe reset(); if (!posts.isEmpty()) { posts.iterator().next().setAuthor(null); - getService().save(user); + getUserService().save(user); assertSelectCount(1); assertUpdateCount(1); - getService().getUserById(id).ifPresent(updatedUser -> { + getUserService().getUserById(id).ifPresent(updatedUser -> { assertThat(updatedUser.getPosts()).hasSize(originalNumberOfPosts - 1); }); }