diff --git a/dadsa b/dadsa new file mode 100644 index 000000000..73e3b68d3 --- /dev/null +++ b/dadsa @@ -0,0 +1,27 @@ + origin/1-jpa-entities + origin/10-add-books-listview + origin/11-add-authors-assn + origin/2-jpa-relationships + origin/2.1-jpa-equals + origin/3-jpa-repositories + origin/4-bootstrap-data + origin/5-assn-add-publisher + origin/6-publisher-relationship + origin/7-enable-h2-console + origin/8-add-book-service + origin/9-add-controller + origin/HEAD -> origin/main + origin/main + upstream/1-jpa-entities + upstream/10-add-books-listview + upstream/11-add-authors-assn + upstream/2-jpa-relationships + upstream/2.1-jpa-equals + upstream/3-jpa-repositories + upstream/4-bootstrap-data + upstream/5-assn-add-publisher + upstream/6-publisher-relationship + upstream/7-enable-h2-console + upstream/8-add-book-service + upstream/9-add-controller + upstream/main diff --git a/src/main/java/guru/springframework/spring6webapp/bootstrap/BootstrapData.java b/src/main/java/guru/springframework/spring6webapp/bootstrap/BootstrapData.java index bd2307da4..fd2e6bb92 100644 --- a/src/main/java/guru/springframework/spring6webapp/bootstrap/BootstrapData.java +++ b/src/main/java/guru/springframework/spring6webapp/bootstrap/BootstrapData.java @@ -2,8 +2,10 @@ import guru.springframework.spring6webapp.domain.Author; import guru.springframework.spring6webapp.domain.Book; +import guru.springframework.spring6webapp.domain.Publisher; import guru.springframework.spring6webapp.repositories.AuthorRepository; import guru.springframework.spring6webapp.repositories.BookRepository; +import guru.springframework.spring6webapp.repositories.PublisherRepository; import org.springframework.boot.CommandLineRunner; import org.springframework.stereotype.Component; @@ -15,10 +17,12 @@ public class BootstrapData implements CommandLineRunner { private final AuthorRepository authorRepository; private final BookRepository bookRepository; + private final PublisherRepository publisherRepository; - public BootstrapData(AuthorRepository authorRepository, BookRepository bookRepository) { + public BootstrapData(AuthorRepository authorRepository, BookRepository bookRepository, PublisherRepository publisherRepository) { this.authorRepository = authorRepository; this.bookRepository = bookRepository; + this.publisherRepository = publisherRepository; } @Override @@ -55,7 +59,16 @@ public void run(String... args) throws Exception { System.out.println("Author Count: " + authorRepository.count()); System.out.println("Book Count: " + bookRepository.count()); + Publisher publisher = new Publisher(); + publisher.setPublisherName("Narcis"); + publisher.setCity("Bucharest"); + publisher.setAddress("Roumania, Bucharest"); + publisher.setState("Roumania"); + publisher.setZip(0000); + publisherRepository.save(publisher); + + System.out.println("Publisher Count: " + publisherRepository.count()); } } diff --git a/src/main/java/guru/springframework/spring6webapp/domain/Publisher.java b/src/main/java/guru/springframework/spring6webapp/domain/Publisher.java new file mode 100644 index 000000000..f13ce39eb --- /dev/null +++ b/src/main/java/guru/springframework/spring6webapp/domain/Publisher.java @@ -0,0 +1,94 @@ +package guru.springframework.spring6webapp.domain; + +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; + +import java.util.Objects; + +@Entity +public class Publisher { + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private Long id; + + private String publisherName; + private String address; + private String city; + private String state; + private Integer zip; + + @Override + public String toString() { + return "Publisher{" + + "id=" + id + + ", publisherName='" + publisherName + '\'' + + ", address='" + address + '\'' + + ", city='" + city + '\'' + + ", state='" + state + '\'' + + ", zip='" + zip + '\'' + + '}'; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof Publisher publisher)) return false; + + return Objects.equals(id, publisher.id); + } + + @Override + public int hashCode() { + return id != null ? id.hashCode() : 0; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getPublisherName() { + return publisherName; + } + + public void setPublisherName(String publisherName) { + this.publisherName = publisherName; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getCity() { + return city; + } + + public void setCity(String city) { + this.city = city; + } + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public Integer getZip() { + return zip; + } + + public void setZip(Integer zip) { + this.zip = zip; + } +} \ No newline at end of file diff --git a/src/main/java/guru/springframework/spring6webapp/repositories/PublisherRepository.java b/src/main/java/guru/springframework/spring6webapp/repositories/PublisherRepository.java new file mode 100644 index 000000000..a02c67ce5 --- /dev/null +++ b/src/main/java/guru/springframework/spring6webapp/repositories/PublisherRepository.java @@ -0,0 +1,8 @@ +package guru.springframework.spring6webapp.repositories; + + +import guru.springframework.spring6webapp.domain.Publisher; +import org.springframework.data.repository.CrudRepository; + +public interface PublisherRepository extends CrudRepository { +}