From 3f4f115355857cba77cd0e5ae96f6d2e9f599a77 Mon Sep 17 00:00:00 2001 From: s15664 Date: Wed, 17 Jan 2018 13:28:18 +0100 Subject: [PATCH 1/2] IS245 Hibernate for ReservationOrder --- .../java/library/domain/ReservationOrder.java | 28 ++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/src/main/java/library/domain/ReservationOrder.java b/src/main/java/library/domain/ReservationOrder.java index 0d859bd..8ea3704 100644 --- a/src/main/java/library/domain/ReservationOrder.java +++ b/src/main/java/library/domain/ReservationOrder.java @@ -2,11 +2,37 @@ import java.sql.Date; + +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="rezerwacje") +@NamedQueries({ + @NamedQuery(name="reservationorders.all", query="SELECT r FROM ReservationOrder r"), + @NamedQuery(name="reservationorders.id", query="SELECT r FROM ReservationOrder r WHERE r.id=:id") +}) + public class ReservationOrder implements IHaveId{ - private Book book; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) private int Id; + + @OneToOne + private Book book; + + @OneToOne private User user; + + private Date date; public Book getBook() { From 7b19c4313a9037756687861ee9bf2bfbf9d05f3e Mon Sep 17 00:00:00 2001 From: s15664 Date: Wed, 17 Jan 2018 13:43:33 +0100 Subject: [PATCH 2/2] IS245 Hibernate for ReservationOrder --- .../web/rest/ReservationsResources.java | 98 +++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 src/main/java/library/web/rest/ReservationsResources.java diff --git a/src/main/java/library/web/rest/ReservationsResources.java b/src/main/java/library/web/rest/ReservationsResources.java new file mode 100644 index 0000000..8b42c77 --- /dev/null +++ b/src/main/java/library/web/rest/ReservationsResources.java @@ -0,0 +1,98 @@ +package library.web.rest; + +import java.util.List; + +import javax.ejb.Stateless; +import javax.persistence.EntityManager; +import javax.persistence.PersistenceContext; +import javax.ws.rs.Consumes; +import javax.ws.rs.DELETE; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.PUT; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import javax.ws.rs.Produces; +import javax.ws.rs.QueryParam; +import javax.ws.rs.core.GenericEntity; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; + +import library.domain.ReservationOrder; + +@Path("/reservations") +@Stateless +public class ReservationsResources { + + @PersistenceContext + EntityManager mgr; + + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response getAll(@QueryParam("page") int page,@QueryParam("max") int max){ + + List reservationOrders = mgr + .createNamedQuery("reservationorders.all", ReservationOrder.class) + .getResultList(); + if(reservationOrders.isEmpty()) + return Response.status(404).build(); + return Response.ok(new GenericEntity>(reservationOrders){}).build(); + } + + @GET + @Produces(MediaType.APPLICATION_JSON) + @Path("/{id}") + public Response get(@PathParam("id") int id){ + List reservationOrders = mgr.createNamedQuery("reservationorders.id",ReservationOrder.class) + .setParameter("id", id) + .getResultList(); + if(reservationOrders.size()==0) + return Response.status(404).build(); + return Response.ok(reservationOrders.get(0)).build(); + } + + @POST + @Consumes(MediaType.APPLICATION_JSON) + public Response addReservationOrder(ReservationOrder reservationOrder){ + mgr.persist(reservationOrder); + return Response.ok().build(); + } + + @PUT + @Consumes(MediaType.APPLICATION_JSON) + @Path("/{id}") + public Response updateReservationOrder(@PathParam("id") int id ,ReservationOrder reservationOrder){ + List reservationOrders = mgr.createNamedQuery("reservationorders.id",ReservationOrder.class) + .setParameter("id", id) + .getResultList(); + if(reservationOrders.size()==0) + return Response.status(404).build(); + ReservationOrder r = reservationOrders.get(0); + r.setBook(reservationOrder.getBook()); + r.setDate(reservationOrder.getDate()); + r.setUser(reservationOrder.getUser()); + + mgr.persist(r); + return Response.ok().build(); + } + + @DELETE + @Path("/{id}") + public Response deleteReservationOrder(@PathParam("id") int id){ + List reservationOrders = mgr.createNamedQuery("reservationorders.id",ReservationOrder.class) + .setParameter("id", id) + .getResultList(); + if(reservationOrders.size()==0) + return Response.status(404).build(); + mgr.remove(reservationOrders.get(0)); + return Response.noContent().build(); + } + + @GET + @Path("/status") + @Produces(MediaType.TEXT_HTML) + public String test(){ + return "OK"; + } + +}