From 5b3f7a7c4e8ce350ae2469e743cbb82d1e2b2621 Mon Sep 17 00:00:00 2001 From: karl Date: Tue, 26 Nov 2019 15:27:02 +0100 Subject: [PATCH] Minor changes, remarks for future work --- MoviesClient/MoviesClient.iml | 1 - .../java/at.technikumwien.movies/Actors.java | 17 ++++++++++---- .../java/at.technikumwien.movies/Movies.java | 19 ++++++++------- MoviesWebApp/MoviesWebApp.iml | 10 ++++++++ .../technikumwien/movies/MoviesService.java | 23 +++++++++---------- .../main/resources/META-INF/persistence.xml | 3 +-- 6 files changed, 44 insertions(+), 29 deletions(-) diff --git a/MoviesClient/MoviesClient.iml b/MoviesClient/MoviesClient.iml index 068f93d..15ff34a 100644 --- a/MoviesClient/MoviesClient.iml +++ b/MoviesClient/MoviesClient.iml @@ -59,6 +59,5 @@ - \ No newline at end of file diff --git a/MoviesCommon/src/main/java/at.technikumwien.movies/Actors.java b/MoviesCommon/src/main/java/at.technikumwien.movies/Actors.java index 7bfb3fa..25992db 100644 --- a/MoviesCommon/src/main/java/at.technikumwien.movies/Actors.java +++ b/MoviesCommon/src/main/java/at.technikumwien.movies/Actors.java @@ -3,6 +3,8 @@ package at.technikumwien.movies; import lombok.*; import javax.persistence.*; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlRootElement; import java.time.LocalDate; @Data @@ -11,7 +13,17 @@ import java.time.LocalDate; @Entity @Table(name = "t_actors") +@NamedQuery( + name = "Actors.getIdByProperties", + query = "SELECT a.id FROM Actors a WHERE " + + "a.firstname LIKE :firstname AND " + + "a.lastname LIKE :lastname AND " + + "a.sex = :sex AND " + + "a.birthdate = :birthdate" +) +@XmlRootElement public class Actors { + @XmlAttribute(name = "id") @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @@ -25,13 +37,10 @@ public class Actors { @Column(nullable = false) private Sex sex; + @Column(nullable = false) private LocalDate birthdate; public Actors(String firstname, String lastname, Sex sex, LocalDate birthdate) { this(null, firstname, lastname, sex, birthdate); } - - //TODO consider using - //@ManyToMany(mappedBy = 'actors') - //private List movies } diff --git a/MoviesCommon/src/main/java/at.technikumwien.movies/Movies.java b/MoviesCommon/src/main/java/at.technikumwien.movies/Movies.java index 113dbd9..106fe28 100644 --- a/MoviesCommon/src/main/java/at.technikumwien.movies/Movies.java +++ b/MoviesCommon/src/main/java/at.technikumwien.movies/Movies.java @@ -14,16 +14,14 @@ import java.util.List; @Entity @Table(name = "t_movies") -@NamedQueries({ - @NamedQuery( - name = "Movies.selectAll", - query = "SELECT n FROM Movies n" - ), - @NamedQuery( - name = "Movies.selectByTitle", - query = "SELECT n FROM Movies n WHERE n.title LIKE :title" - ) -}) +@NamedQuery( + name = "Movies.selectAll", + query = "SELECT n FROM Movies n" +) +@NamedQuery( + name = "Movies.selectByTitle", + query = "SELECT n FROM Movies n WHERE n.title LIKE :title" +) @XmlRootElement public class Movies { // TODO: XmlAttributes may need different names @@ -37,6 +35,7 @@ public class Movies { @XmlAttribute private String title; + @Column(length = 2048) @XmlAttribute private String description; diff --git a/MoviesWebApp/MoviesWebApp.iml b/MoviesWebApp/MoviesWebApp.iml index 0acad9d..5febc5f 100644 --- a/MoviesWebApp/MoviesWebApp.iml +++ b/MoviesWebApp/MoviesWebApp.iml @@ -11,6 +11,16 @@ + + + + + + + + + + diff --git a/MoviesWebApp/src/main/java/at/technikumwien/movies/MoviesService.java b/MoviesWebApp/src/main/java/at/technikumwien/movies/MoviesService.java index 3102d47..212d173 100644 --- a/MoviesWebApp/src/main/java/at/technikumwien/movies/MoviesService.java +++ b/MoviesWebApp/src/main/java/at/technikumwien/movies/MoviesService.java @@ -5,6 +5,7 @@ import javax.ejb.*; import javax.persistence.EntityManager; import javax.persistence.EntityNotFoundException; import javax.persistence.PersistenceContext; +import java.sql.ResultSet; import java.util.List; import java.util.logging.Logger; @@ -52,19 +53,17 @@ public class MoviesService { } public void save(Movies movies) { - // TODO: Search for actors, studio based on fields we get - // If exists -> Replace by found ID - // Else -> Error! +// // TODO +// for (Actors actor : movies.getActors()) { +// ResultSet rs = em.createNamedQuery("Actors.getIdByParameters", Actors.class) +// .setParameter() // TODO +// .getResultList(); +// +// // Check if we have a result, if yes -> take first, actor.id = resultID +// // If no result: context.setRollbackOnly(); +// } LOGGER.info("save() >> movies" + movies); - if (movies.getId() == null) { - em.persist(movies); - } else { - findById(movies.getId()); //checks if movies exists - em.merge(movies); - } - - // TODO: On error: context.setRollbackOnly(); - // or: throw new EJBException("Can't save ...") + em.merge(movies); } } \ No newline at end of file diff --git a/MoviesWebApp/src/main/resources/META-INF/persistence.xml b/MoviesWebApp/src/main/resources/META-INF/persistence.xml index ce6f5e3..e9363c4 100644 --- a/MoviesWebApp/src/main/resources/META-INF/persistence.xml +++ b/MoviesWebApp/src/main/resources/META-INF/persistence.xml @@ -5,8 +5,7 @@ version="2.2"> java:jboss/datasources/MoviesDS - lib/NewsCommon-1.0.0-SNAPSHOT.jar - false +