From 9945d28976f91a0cca9be24f7e34651fa419f005 Mon Sep 17 00:00:00 2001 From: yohan Date: Sun, 18 Aug 2024 16:07:41 +0900 Subject: [PATCH 1/6] =?UTF-8?q?feat:=202=20=EB=8B=A4=EB=8C=80=EC=9D=BC=20?= =?UTF-8?q?=EB=8B=A8=EB=B0=A9=ED=96=A5=20=ED=95=B4=EA=B2=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../initial/src/main/java/cholog/Book.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/spring-data-jpa-2/initial/src/main/java/cholog/Book.java b/spring-data-jpa-2/initial/src/main/java/cholog/Book.java index 6f119218..78c52bdb 100644 --- a/spring-data-jpa-2/initial/src/main/java/cholog/Book.java +++ b/spring-data-jpa-2/initial/src/main/java/cholog/Book.java @@ -1,9 +1,6 @@ package cholog; -import jakarta.persistence.Entity; -import jakarta.persistence.GeneratedValue; -import jakarta.persistence.GenerationType; -import jakarta.persistence.Id; +import jakarta.persistence.*; import java.util.Set; @@ -14,11 +11,16 @@ public class Book { private Long id; private String name; + @ManyToOne + private Publisher publisher; + public Book() { } public Book(String name, Publisher publisher) { + this.name = name; + this.publisher = publisher; } public Long getId() { @@ -30,7 +32,7 @@ public String getName() { } public Publisher getPublisher() { - return null; + return publisher; } public Set getAuthors() { From 7ccf9532b13ebf12610dfd836756326e51cf8d98 Mon Sep 17 00:00:00 2001 From: yohan Date: Sun, 18 Aug 2024 16:31:39 +0900 Subject: [PATCH 2/6] =?UTF-8?q?feat:=203=20=EB=8B=A4=EB=8C=80=EC=9D=BC=20?= =?UTF-8?q?=EC=96=91=EB=B0=A9=ED=96=A5=20=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../initial/src/main/java/cholog/Publisher.java | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/spring-data-jpa-2/initial/src/main/java/cholog/Publisher.java b/spring-data-jpa-2/initial/src/main/java/cholog/Publisher.java index b0c6303e..78f9e57d 100644 --- a/spring-data-jpa-2/initial/src/main/java/cholog/Publisher.java +++ b/spring-data-jpa-2/initial/src/main/java/cholog/Publisher.java @@ -1,10 +1,9 @@ package cholog; -import jakarta.persistence.Entity; -import jakarta.persistence.GeneratedValue; -import jakarta.persistence.GenerationType; -import jakarta.persistence.Id; +import jakarta.persistence.*; +import java.util.HashSet; +import java.util.List; import java.util.Set; @Entity @@ -14,8 +13,12 @@ public class Publisher { private Long id; private String name; + @OneToMany(mappedBy = "publisher") + private Set books; + public Publisher(String name) { this.name = name; + this.books = new HashSet<>(); } public Publisher() { @@ -30,10 +33,10 @@ public String getName() { } public void addBook(Book book) { - + books.add(book); } public Set getBooks() { - return null; + return books; } } From 0300c036ae6b81ec5ba644e1970538b8f490d9f6 Mon Sep 17 00:00:00 2001 From: yohan Date: Sun, 18 Aug 2024 16:43:13 +0900 Subject: [PATCH 3/6] =?UTF-8?q?feat:=203=20=EB=8B=A4=EB=8C=80=EC=9D=BC=20?= =?UTF-8?q?=EC=96=91=EB=B0=A9=ED=96=A5=20=ED=95=B4=EA=B2=B02?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- spring-data-jpa-2/initial/src/main/java/cholog/Publisher.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-data-jpa-2/initial/src/main/java/cholog/Publisher.java b/spring-data-jpa-2/initial/src/main/java/cholog/Publisher.java index 78f9e57d..e2f9c60a 100644 --- a/spring-data-jpa-2/initial/src/main/java/cholog/Publisher.java +++ b/spring-data-jpa-2/initial/src/main/java/cholog/Publisher.java @@ -13,7 +13,7 @@ public class Publisher { private Long id; private String name; - @OneToMany(mappedBy = "publisher") + @OneToMany(mappedBy = "publisher", fetch = FetchType.EAGER) private Set books; public Publisher(String name) { From 0cc734220ba8da23743d75fe8f573ce8cbe8ae57 Mon Sep 17 00:00:00 2001 From: yohan Date: Sun, 18 Aug 2024 17:03:07 +0900 Subject: [PATCH 4/6] =?UTF-8?q?feat:=204=20=EC=9D=BC=EB=8C=80=EC=9D=BC=20?= =?UTF-8?q?=EB=8B=A8=EB=B0=A9=ED=96=A5=20=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../initial/src/main/java/cholog/Author.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/spring-data-jpa-2/initial/src/main/java/cholog/Author.java b/spring-data-jpa-2/initial/src/main/java/cholog/Author.java index 937debe1..38fb833e 100644 --- a/spring-data-jpa-2/initial/src/main/java/cholog/Author.java +++ b/spring-data-jpa-2/initial/src/main/java/cholog/Author.java @@ -1,9 +1,6 @@ package cholog; -import jakarta.persistence.Entity; -import jakarta.persistence.GeneratedValue; -import jakarta.persistence.GenerationType; -import jakarta.persistence.Id; +import jakarta.persistence.*; @Entity public class Author { @@ -11,7 +8,11 @@ public class Author { @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; + @OneToOne + private Person person; + public Author(Person person) { + this.person = person; } public Author() { @@ -22,6 +23,6 @@ public Long getId() { } public Person getPerson() { - return null; + return person; } } From 8cbc92e424426604e35e2fd6da76313ccca1221c Mon Sep 17 00:00:00 2001 From: yohan Date: Sun, 18 Aug 2024 17:07:49 +0900 Subject: [PATCH 5/6] =?UTF-8?q?feat:=205=20=EC=9D=BC=EB=8C=80=EC=9D=BC=20?= =?UTF-8?q?=EC=96=91=EB=B0=A9=ED=96=A5=20=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../initial/src/main/java/cholog/Person.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/spring-data-jpa-2/initial/src/main/java/cholog/Person.java b/spring-data-jpa-2/initial/src/main/java/cholog/Person.java index 6cf1d009..3bb9af8b 100644 --- a/spring-data-jpa-2/initial/src/main/java/cholog/Person.java +++ b/spring-data-jpa-2/initial/src/main/java/cholog/Person.java @@ -1,9 +1,6 @@ package cholog; -import jakarta.persistence.Entity; -import jakarta.persistence.GeneratedValue; -import jakarta.persistence.GenerationType; -import jakarta.persistence.Id; +import jakarta.persistence.*; @Entity public class Person { @@ -12,6 +9,9 @@ public class Person { private Long id; private String name; + @OneToOne(mappedBy = "person") + private Author author; + public Person() { } @@ -29,6 +29,6 @@ public String getName() { } public Author getAuthor() { - return null; + return author; } } From dc1ed61c80f99257e050d392be95dd88a569cd29 Mon Sep 17 00:00:00 2001 From: yohan Date: Sun, 18 Aug 2024 17:22:07 +0900 Subject: [PATCH 6/6] =?UTF-8?q?feat:=206=20=EB=8B=A4=EB=8C=80=EB=8B=A4=20?= =?UTF-8?q?=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../initial/src/main/java/cholog/Author.java | 5 ++++ .../initial/src/main/java/cholog/Book.java | 8 +++++- .../src/main/java/cholog/BookAuthor.java | 25 +++++++++++++++++++ 3 files changed, 37 insertions(+), 1 deletion(-) diff --git a/spring-data-jpa-2/initial/src/main/java/cholog/Author.java b/spring-data-jpa-2/initial/src/main/java/cholog/Author.java index 38fb833e..e61449fe 100644 --- a/spring-data-jpa-2/initial/src/main/java/cholog/Author.java +++ b/spring-data-jpa-2/initial/src/main/java/cholog/Author.java @@ -2,6 +2,8 @@ import jakarta.persistence.*; +import java.util.Set; + @Entity public class Author { @Id @@ -11,6 +13,9 @@ public class Author { @OneToOne private Person person; + @OneToMany(mappedBy = "author") + private Set books; + public Author(Person person) { this.person = person; } diff --git a/spring-data-jpa-2/initial/src/main/java/cholog/Book.java b/spring-data-jpa-2/initial/src/main/java/cholog/Book.java index 78c52bdb..912e9471 100644 --- a/spring-data-jpa-2/initial/src/main/java/cholog/Book.java +++ b/spring-data-jpa-2/initial/src/main/java/cholog/Book.java @@ -3,6 +3,7 @@ import jakarta.persistence.*; import java.util.Set; +import java.util.stream.Collectors; @Entity public class Book { @@ -14,6 +15,9 @@ public class Book { @ManyToOne private Publisher publisher; + @OneToMany(mappedBy = "book") + private Set authors; + public Book() { } @@ -36,6 +40,8 @@ public Publisher getPublisher() { } public Set getAuthors() { - return null; + return authors.stream() + .map(BookAuthor::getAuthor) + .collect(Collectors.toSet()); } } diff --git a/spring-data-jpa-2/initial/src/main/java/cholog/BookAuthor.java b/spring-data-jpa-2/initial/src/main/java/cholog/BookAuthor.java index 4d9c8d73..36b1e9a8 100644 --- a/spring-data-jpa-2/initial/src/main/java/cholog/BookAuthor.java +++ b/spring-data-jpa-2/initial/src/main/java/cholog/BookAuthor.java @@ -1,7 +1,32 @@ package cholog; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.Id; +import jakarta.persistence.ManyToOne; + +@Entity public class BookAuthor { + + @Id @GeneratedValue + private Long id; + + @ManyToOne + private Book book; + + @ManyToOne + private Author author; + + public BookAuthor() { + + } + public BookAuthor(Book book, Author author) { + this.book = book; + this.author = author; + } + public Author getAuthor() { + return author; } }