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
+