diff --git a/src/main/java/library/domain/Author.java b/src/main/java/library/domain/Author.java index 3f93d14..3f28170 100644 --- a/src/main/java/library/domain/Author.java +++ b/src/main/java/library/domain/Author.java @@ -1,7 +1,15 @@ package library.domain; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; + +@Entity public class Author implements IHaveId { + @Id + @GeneratedValue(strategy=GenerationType.IDENTITY) private int id; private String name; private String secondName; diff --git a/src/main/java/library/domain/Book.java b/src/main/java/library/domain/Book.java index f9b5a99..5d4a4eb 100644 --- a/src/main/java/library/domain/Book.java +++ b/src/main/java/library/domain/Book.java @@ -2,9 +2,22 @@ import java.sql.Date; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.OneToOne; + + +@Entity + public class Book implements IHaveId{ + + @Id + @GeneratedValue(strategy=GenerationType.IDENTITY) private int id; + @OneToOne private Publisher publisher; private Date releaseDate; private Date additionDate; diff --git a/src/main/java/library/domain/Genre.java b/src/main/java/library/domain/Genre.java index 43c690f..feba6c8 100644 --- a/src/main/java/library/domain/Genre.java +++ b/src/main/java/library/domain/Genre.java @@ -1,9 +1,41 @@ package library.domain; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.NamedQueries; +import javax.persistence.NamedQuery; +import javax.persistence.OneToOne; +import javax.persistence.Table; + +@Entity +@Table(name="gatunek") +@NamedQueries({ + @NamedQuery(name="genres.all", query="SELECT g FROM Genre g"), +}) + public class Genre { + @Id + @GeneratedValue(strategy=GenerationType.IDENTITY) + private int id; private String name; - public String getName() { + @OneToOne + private Section section; + + + + + public Section getSection() { + return section; + } + + public void setSection(Section section) { + this.section = section; + } + + public String getName() { return name; } diff --git a/src/main/java/library/domain/Publisher.java b/src/main/java/library/domain/Publisher.java index 967bd07..b106872 100644 --- a/src/main/java/library/domain/Publisher.java +++ b/src/main/java/library/domain/Publisher.java @@ -1,13 +1,35 @@ package library.domain; +import java.util.List; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.NamedQueries; +import javax.persistence.NamedQuery; +import javax.persistence.OneToMany; +import javax.persistence.Table; + +@Entity +@Table(name="wydawca") +@NamedQueries({ + @NamedQuery(name="publishers.all", query="SELECT p FROM Publisher p"), + @NamedQuery(name="publishers.id", query="SELECT p FROM Publisher p WHERE p.id=:id") +}) + public class Publisher implements IHaveId{ + @Id + @GeneratedValue(strategy=GenerationType.IDENTITY) private int id; private String name; private int phoneNumber; private String emailAdress; private String website; + @OneToMany(mappedBy="publisher") + private List books; public Publisher(String name, int phoneNumber, String emailAdress, String website) { @@ -18,6 +40,17 @@ public Publisher(String name, int phoneNumber, String emailAdress, this.website = website; } + + public List getBooks() { + return books; + } + + + public void setBooks(List books) { + this.books = books; + } + + public Publisher() { super(); } diff --git a/src/main/java/library/domain/Section.java b/src/main/java/library/domain/Section.java index c123f3d..dd4264f 100644 --- a/src/main/java/library/domain/Section.java +++ b/src/main/java/library/domain/Section.java @@ -1,9 +1,31 @@ package library.domain; import java.util.List; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.NamedQueries; +import javax.persistence.NamedQuery; +import javax.persistence.OneToMany; + +import javax.persistence.Table; + +@Entity +@Table(name="sekcja") +@NamedQueries({ + @NamedQuery(name="sections.all", query="SELECT s FROM Section s"), + +}) public class Section { + + @Id + @GeneratedValue(strategy=GenerationType.IDENTITY) + private int id; private String name; + + @OneToMany private List genres; public List getGenres() { diff --git a/src/main/java/library/web/rest/PublishersResources.java b/src/main/java/library/web/rest/PublishersResources.java index 1a718a4..6d423a8 100644 --- a/src/main/java/library/web/rest/PublishersResources.java +++ b/src/main/java/library/web/rest/PublishersResources.java @@ -4,6 +4,8 @@ import java.util.List; import javax.ejb.Stateless; +import javax.persistence.EntityManager; +import javax.persistence.PersistenceContext; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.PathParam; @@ -12,26 +14,23 @@ import javax.ws.rs.core.GenericEntity; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; - -import library.dao.repositories.IPublisherRepository; -import library.dao.repositories.impl.HsqlCatalogFactory; import library.domain.Publisher; @Path("/Publishers") @Stateless public class PublishersResources{ - IPublisherRepository _Publishers; - - public PublishersResources() { - //_Publishers = new HsqlCatalogFactory().library().publishers(); - } + + @PersistenceContext + EntityManager mgr; @GET @Produces(MediaType.APPLICATION_JSON) public Response getAll(@QueryParam("page") int page,@QueryParam("max") int max){ - List Publishers = _Publishers.getPage(page, max); + List Publishers = mgr + .createNamedQuery("publishers.all", Publisher.class) + .getResultList(); if(Publishers.isEmpty()) return Response.status(404).build(); return Response.ok(new GenericEntity>(Publishers){}).build(); @@ -41,10 +40,14 @@ public Response getAll(@QueryParam("page") int page,@QueryParam("max") int max){ @Produces(MediaType.APPLICATION_JSON) @Path("/{id}") public Response get(@PathParam("id") int id){ - Publisher publisher = _Publishers.get(id); - if(publisher==null) + List publishers = mgr + .createNamedQuery("publishers.id", Publisher.class) + .setParameter("id", id) + .getResultList(); + + if(publishers.size()==0) return Response.status(404).build(); - return Response.ok(publisher).build(); + return Response.ok(publishers.get(0)).build(); } @GET