commit
add01c655f
@ -0,0 +1,14 @@ |
|||||||
|
# http://editorconfig.org |
||||||
|
|
||||||
|
root = true |
||||||
|
|
||||||
|
[*] |
||||||
|
indent_style = space |
||||||
|
indent_size = 2 |
||||||
|
insert_final_newline = true |
||||||
|
trim_trailing_whitespace = true |
||||||
|
end_of_line = lf |
||||||
|
charset = utf-8 |
||||||
|
|
||||||
|
[*.{yml,yaml,json}] |
||||||
|
insert_final_newline = false |
Binary file not shown.
@ -1,2 +1,2 @@ |
|||||||
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip |
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.2/apache-maven-3.6.2-bin.zip |
||||||
wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar |
wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar |
@ -0,0 +1,37 @@ |
|||||||
|
package mivan; |
||||||
|
|
||||||
|
import java.io.Console; |
||||||
|
|
||||||
|
import org.springframework.boot.SpringApplication; |
||||||
|
import org.springframework.boot.autoconfigure.SpringBootApplication; |
||||||
|
|
||||||
|
import mivan.model.User; |
||||||
|
import mivan.repository.UserRepository; |
||||||
|
import mivan.repository.UserRepositoryImpl; |
||||||
|
|
||||||
|
@SpringBootApplication |
||||||
|
public class Mivan { |
||||||
|
|
||||||
|
public static void main(String[] args) { |
||||||
|
|
||||||
|
String firstName = "Paolo"; |
||||||
|
String lastName = "Verdi"; |
||||||
|
String city = "Milano"; |
||||||
|
String username = "p.verdi1"; |
||||||
|
String email = "p.verdi1@campus.unimib.it"; |
||||||
|
String password = "pverdipassword"; |
||||||
|
|
||||||
|
User user = new User(firstName, lastName, city, username, email, password); |
||||||
|
|
||||||
|
|
||||||
|
UserRepository userRepository = new UserRepositoryImpl(); |
||||||
|
userRepository.addUser(user); |
||||||
|
|
||||||
|
int size = userRepository.getSize(); |
||||||
|
|
||||||
|
System.out.print(size); |
||||||
|
|
||||||
|
SpringApplication.run(Mivan.class, args); |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,74 @@ |
|||||||
|
package mivan.model; |
||||||
|
|
||||||
|
import java.io.Serializable; |
||||||
|
import java.util.ArrayList; |
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
import javax.persistence.Column; |
||||||
|
import javax.persistence.Entity; |
||||||
|
import javax.persistence.GeneratedValue; |
||||||
|
import javax.persistence.GenerationType; |
||||||
|
import javax.persistence.Id; |
||||||
|
import javax.persistence.ManyToMany; |
||||||
|
import javax.persistence.Table; |
||||||
|
|
||||||
|
@Entity |
||||||
|
@Table(name = "author") |
||||||
|
public class Author implements Serializable { |
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L; |
||||||
|
|
||||||
|
@Id |
||||||
|
@GeneratedValue(strategy = GenerationType.IDENTITY) |
||||||
|
@Column(name = "id", unique = true) |
||||||
|
private long id; |
||||||
|
|
||||||
|
@Column(name = "name", nullable=false) |
||||||
|
|
||||||
|
private String name; |
||||||
|
|
||||||
|
@ManyToMany(mappedBy="authors") |
||||||
|
private List<Book> books; |
||||||
|
|
||||||
|
public Author() {} |
||||||
|
public Author(String name) { |
||||||
|
super(); |
||||||
|
this.name = name; |
||||||
|
this.books = new ArrayList <Book>(); |
||||||
|
} |
||||||
|
|
||||||
|
public long getId() { |
||||||
|
return id; |
||||||
|
} |
||||||
|
|
||||||
|
public void setId(long id) { |
||||||
|
this.id = id; |
||||||
|
} |
||||||
|
|
||||||
|
public String getName() { |
||||||
|
return name; |
||||||
|
} |
||||||
|
|
||||||
|
public void setName(String name) { |
||||||
|
this.name = name; |
||||||
|
} |
||||||
|
|
||||||
|
public List<Book> getBooks() { |
||||||
|
return this.books; |
||||||
|
} |
||||||
|
|
||||||
|
public void addBook(Book book) { |
||||||
|
if (!this.books.contains(book)) { |
||||||
|
this.books.add(book); |
||||||
|
book.addAuthor(this); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public void removeBook(Book book) { |
||||||
|
if (this.books.contains(book)) |
||||||
|
this.books.remove(book); |
||||||
|
book.removeAuthor(this); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
} |
@ -0,0 +1,93 @@ |
|||||||
|
package mivan.model; |
||||||
|
|
||||||
|
import java.io.Serializable; |
||||||
|
import java.util.ArrayList; |
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
import javax.persistence.Column; |
||||||
|
import javax.persistence.Entity; |
||||||
|
import javax.persistence.Id; |
||||||
|
import javax.persistence.JoinTable; |
||||||
|
import javax.persistence.JoinColumn; |
||||||
|
import javax.persistence.ManyToMany; |
||||||
|
import javax.persistence.OneToOne; |
||||||
|
import javax.persistence.Table; |
||||||
|
|
||||||
|
@Entity |
||||||
|
@Table(name = "book") |
||||||
|
public class Book implements Serializable { |
||||||
|
|
||||||
|
private static final long serialVersionUID = 19L; |
||||||
|
|
||||||
|
@Id |
||||||
|
@Column(name = "isbn", nullable=false, unique=true) |
||||||
|
private long isbn; |
||||||
|
|
||||||
|
@Column(name = "title", nullable=false) |
||||||
|
private String title; |
||||||
|
|
||||||
|
@OneToOne |
||||||
|
private Book prequel; |
||||||
|
|
||||||
|
@ManyToMany |
||||||
|
@JoinTable( |
||||||
|
name = "book_has_author", |
||||||
|
joinColumns=@JoinColumn(name="isbn", referencedColumnName="isbn"), |
||||||
|
inverseJoinColumns=@JoinColumn(name="id", referencedColumnName="id") ) |
||||||
|
private List<Author> authors; |
||||||
|
|
||||||
|
public Book() { |
||||||
|
} |
||||||
|
|
||||||
|
public Book(long isbn, String title, Book prequel) { |
||||||
|
this.isbn = isbn; |
||||||
|
this.title = title; |
||||||
|
this.prequel = prequel; |
||||||
|
this.authors = new ArrayList<Author>(); |
||||||
|
} |
||||||
|
|
||||||
|
public long getIsbn() { |
||||||
|
return isbn; |
||||||
|
} |
||||||
|
|
||||||
|
public String getTitle() { |
||||||
|
return title; |
||||||
|
} |
||||||
|
|
||||||
|
public Book getPrequel() { |
||||||
|
return prequel; |
||||||
|
} |
||||||
|
|
||||||
|
public void setIsbn(long isbn) { |
||||||
|
this.isbn = isbn; |
||||||
|
} |
||||||
|
|
||||||
|
public void setTitle(String title) { |
||||||
|
this.title = title; |
||||||
|
} |
||||||
|
|
||||||
|
public void setPrequel(Book prequel) { |
||||||
|
this.prequel = prequel; |
||||||
|
} |
||||||
|
|
||||||
|
public List<Author> getAuthors() { |
||||||
|
return this.authors; |
||||||
|
} |
||||||
|
|
||||||
|
public void addAuthor(Author author) { |
||||||
|
|
||||||
|
if (!this.authors.contains(author)) { |
||||||
|
this.authors.add(author); |
||||||
|
author.addBook(this); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public void removeAuthor(Author author) { |
||||||
|
if (this.authors.contains(author)) { |
||||||
|
this.authors.remove(author); |
||||||
|
author.removeBook(this); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,83 @@ |
|||||||
|
package mivan.model; |
||||||
|
|
||||||
|
import java.io.Serializable; |
||||||
|
import java.util.ArrayList; |
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
import javax.persistence.Column; |
||||||
|
import javax.persistence.Entity; |
||||||
|
import javax.persistence.GeneratedValue; |
||||||
|
import javax.persistence.GenerationType; |
||||||
|
import javax.persistence.Id; |
||||||
|
import javax.persistence.OneToMany; |
||||||
|
import javax.persistence.Table; |
||||||
|
|
||||||
|
@Entity |
||||||
|
@Table(name = "location") |
||||||
|
public class Location implements Serializable { |
||||||
|
|
||||||
|
private static final long serialVersionUID = -5124436115031696628L; |
||||||
|
|
||||||
|
@Id |
||||||
|
@GeneratedValue(strategy = GenerationType.IDENTITY) |
||||||
|
@Column(name = "id", unique = true) |
||||||
|
private Long id; |
||||||
|
|
||||||
|
@Column(name = "name", nullable = false, unique = true) |
||||||
|
private String name; |
||||||
|
|
||||||
|
@Column(name = "adress", nullable = false) |
||||||
|
private String adress; |
||||||
|
|
||||||
|
@OneToMany(mappedBy = "location") |
||||||
|
private List<Staff> staffs; |
||||||
|
|
||||||
|
protected Location() { |
||||||
|
} |
||||||
|
|
||||||
|
public Location(String name, String adress) { |
||||||
|
this.name = name; |
||||||
|
this.adress = adress; |
||||||
|
this.staffs = new ArrayList<Staff>(); |
||||||
|
} |
||||||
|
|
||||||
|
public Long getId() { |
||||||
|
return id; |
||||||
|
} |
||||||
|
|
||||||
|
public String getName() { |
||||||
|
return name; |
||||||
|
} |
||||||
|
|
||||||
|
public String getAdress() { |
||||||
|
return adress; |
||||||
|
} |
||||||
|
|
||||||
|
public List<Staff> getStaffs() { |
||||||
|
return staffs; |
||||||
|
} |
||||||
|
|
||||||
|
public void setId(Long id) { |
||||||
|
this.id = id; |
||||||
|
} |
||||||
|
|
||||||
|
public void setName(String name) { |
||||||
|
this.name = name; |
||||||
|
} |
||||||
|
|
||||||
|
public void setAdress(String adress) { |
||||||
|
this.adress = adress; |
||||||
|
} |
||||||
|
|
||||||
|
public void setStaffs(List<Staff> staffs) { |
||||||
|
this.staffs = staffs; |
||||||
|
} |
||||||
|
|
||||||
|
public void addStaff(Staff staff) { |
||||||
|
this.staffs.add(staff); |
||||||
|
if (staff.getLocation() != this) { |
||||||
|
staff.setLocation(this); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,71 @@ |
|||||||
|
package mivan.model; |
||||||
|
|
||||||
|
import javax.persistence.Column; |
||||||
|
import javax.persistence.Entity; |
||||||
|
import javax.persistence.JoinColumn; |
||||||
|
import javax.persistence.ManyToOne; |
||||||
|
import javax.persistence.Table; |
||||||
|
|
||||||
|
@Entity |
||||||
|
@Table(name = "staff") |
||||||
|
public class Staff extends Person { |
||||||
|
|
||||||
|
private static final long serialVersionUID = -5124436115031696628L; |
||||||
|
|
||||||
|
@Column(name = "idka", nullable = false, unique = true) |
||||||
|
private String idka; |
||||||
|
|
||||||
|
@Column(name = "ruolo", nullable = false) |
||||||
|
private String ruolo; |
||||||
|
|
||||||
|
@ManyToOne |
||||||
|
@JoinColumn(name = "location_id", referencedColumnName = "id") |
||||||
|
private Location location; |
||||||
|
|
||||||
|
public Staff() { |
||||||
|
super(); |
||||||
|
// TODO Auto-generated constructor stub
|
||||||
|
} |
||||||
|
|
||||||
|
public Staff(String firstName, String lastName, String city, String idka, String ruolo, Location location) { |
||||||
|
super(firstName, lastName, city); |
||||||
|
this.idka = idka; |
||||||
|
this.ruolo = ruolo; |
||||||
|
setLocation(location); |
||||||
|
} |
||||||
|
|
||||||
|
public Staff(String firstName, String lastName, String city, String idka, String ruolo) { |
||||||
|
super(firstName, lastName, city); |
||||||
|
this.idka = idka; |
||||||
|
this.ruolo = ruolo; |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
public String getIdka() { |
||||||
|
return idka; |
||||||
|
} |
||||||
|
|
||||||
|
public String getRuolo() { |
||||||
|
return ruolo; |
||||||
|
} |
||||||
|
|
||||||
|
public Location getLocation() { |
||||||
|
return location; |
||||||
|
} |
||||||
|
|
||||||
|
public void setIdka(String idka) { |
||||||
|
this.idka = idka; |
||||||
|
} |
||||||
|
|
||||||
|
public void setRuolo(String ruolo) { |
||||||
|
this.ruolo = ruolo; |
||||||
|
} |
||||||
|
|
||||||
|
public void setLocation(Location location) { |
||||||
|
this.location = location; |
||||||
|
if (!location.getStaffs().contains(this)) { |
||||||
|
location.getStaffs().add(this); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,90 @@ |
|||||||
|
package mivan.model; |
||||||
|
|
||||||
|
|
||||||
|
import javax.persistence.Column; |
||||||
|
import javax.persistence.Entity; |
||||||
|
import javax.persistence.Table; |
||||||
|
|
||||||
|
@Entity |
||||||
|
@Table(name = "user") |
||||||
|
public class User extends Person { |
||||||
|
|
||||||
|
private static final long serialVersionUID = -5124436115031696628L; |
||||||
|
|
||||||
|
@Column(name = "username", nullable=false,unique=true) |
||||||
|
private String username; |
||||||
|
|
||||||
|
@Column(name = "email", nullable=false,unique=true) |
||||||
|
private String email; |
||||||
|
|
||||||
|
@Column(name = "password", nullable=false) |
||||||
|
private String password; |
||||||
|
|
||||||
|
|
||||||
|
protected User() { |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public User(String firstName, String lastName, String city,String username, String email, String password) { |
||||||
|
super(firstName,lastName,city); |
||||||
|
this.username = username; |
||||||
|
this.email = email; |
||||||
|
this.password = password; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public String getUsername() { |
||||||
|
return username; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public void setUsername(String username) { |
||||||
|
this.username = username; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public String getEmail() { |
||||||
|
return email; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public void setEmail(String email) { |
||||||
|
this.email = email; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public String getPassword() { |
||||||
|
return password; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public void setPassword(String password) { |
||||||
|
this.password = password; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public static long getSerialversionuid() { |
||||||
|
return serialVersionUID; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Override |
||||||
|
public String toString() { |
||||||
|
return "User [username=" + username + ", email=" + email + ", password=" + password + "]"; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
} |
@ -0,0 +1,20 @@ |
|||||||
|
package mivan.repository; |
||||||
|
|
||||||
|
import mivan.model.Author; |
||||||
|
|
||||||
|
public interface AuthorRepository extends Repository<Author, Long> { |
||||||
|
|
||||||
|
public void deleteAuthorById(Long id); |
||||||
|
|
||||||
|
public void addAuthor(Author author); |
||||||
|
|
||||||
|
public void updateAuthor(Long id, String name); |
||||||
|
|
||||||
|
public Author searchAuthorByName(String name); |
||||||
|
|
||||||
|
public void addBook(Long isbn, Long id); |
||||||
|
|
||||||
|
public void removeBook(Long isbn, Long id); |
||||||
|
|
||||||
|
public int getSize(); |
||||||
|
} |
@ -0,0 +1,156 @@ |
|||||||
|
package mivan.repository; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
import java.util.Optional; |
||||||
|
|
||||||
|
import javax.persistence.EntityManager; |
||||||
|
import javax.persistence.EntityManagerFactory; |
||||||
|
import javax.persistence.Persistence; |
||||||
|
|
||||||
|
import mivan.model.Author; |
||||||
|
import mivan.model.Book; |
||||||
|
|
||||||
|
public class AuthorRepositoryImpl implements AuthorRepository { |
||||||
|
|
||||||
|
private EntityManagerFactory entityManagerFactory; |
||||||
|
|
||||||
|
public AuthorRepositoryImpl() { |
||||||
|
this.entityManagerFactory = Persistence.createEntityManagerFactory("mivan"); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Optional<Author> findById(Long id) { |
||||||
|
final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); |
||||||
|
Author author = entityManager.find(Author.class, id); |
||||||
|
entityManager.close(); |
||||||
|
return Optional.ofNullable(author); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Iterable<Author> findAll() { |
||||||
|
final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); |
||||||
|
List<Author> author = entityManager.createQuery("FROM Author", Author.class).getResultList(); |
||||||
|
entityManager.close(); |
||||||
|
return author; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void deleteAuthorById(Long id) { |
||||||
|
final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); |
||||||
|
try { |
||||||
|
if (!entityManager.getTransaction().isActive()) { |
||||||
|
entityManager.getTransaction().begin(); |
||||||
|
} |
||||||
|
Author author = entityManager.find(Author.class, id); |
||||||
|
entityManager.remove(author); |
||||||
|
entityManager.getTransaction().commit(); |
||||||
|
entityManager.close(); |
||||||
|
} catch (Exception ex) { |
||||||
|
entityManager.getTransaction().rollback(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void addAuthor(Author author) { |
||||||
|
final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); |
||||||
|
try { |
||||||
|
if (!entityManager.getTransaction().isActive()) { |
||||||
|
entityManager.getTransaction().begin(); |
||||||
|
} |
||||||
|
entityManager.persist(author); |
||||||
|
entityManager.getTransaction().commit(); |
||||||
|
entityManager.close(); |
||||||
|
|
||||||
|
} catch (Exception ex) { |
||||||
|
entityManager.getTransaction().rollback(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void updateAuthor(Long id, String name) { |
||||||
|
final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); |
||||||
|
try { |
||||||
|
if (!entityManager.getTransaction().isActive()) { |
||||||
|
entityManager.getTransaction().begin(); |
||||||
|
} |
||||||
|
Author author = entityManager.find(Author.class, id); |
||||||
|
author.setName(name); |
||||||
|
entityManager.persist(author); |
||||||
|
entityManager.getTransaction().commit(); |
||||||
|
entityManager.close(); |
||||||
|
} catch (Exception ex) { |
||||||
|
entityManager.getTransaction().rollback(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Author searchAuthorByName(String name) { |
||||||
|
final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); |
||||||
|
|
||||||
|
Author author = null; |
||||||
|
try { |
||||||
|
author = (Author) entityManager.createQuery("FROM Author u WHERE lower(u.name) = '" + name.toLowerCase() + "'") |
||||||
|
.getSingleResult(); |
||||||
|
|
||||||
|
entityManager.close(); |
||||||
|
} catch (Exception ex) { |
||||||
|
author = null; |
||||||
|
} |
||||||
|
|
||||||
|
return author; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public int getSize() { |
||||||
|
final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); |
||||||
|
int size = 0; |
||||||
|
try { |
||||||
|
size = entityManager.createQuery("FROM Author").getResultList().size(); |
||||||
|
|
||||||
|
entityManager.close(); |
||||||
|
} catch (Exception ex) { |
||||||
|
size = 0; |
||||||
|
} |
||||||
|
return size; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void addBook(Long isbn, Long id) { |
||||||
|
final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); |
||||||
|
try { |
||||||
|
if (!entityManager.getTransaction().isActive()) { |
||||||
|
entityManager.getTransaction().begin(); |
||||||
|
} |
||||||
|
Book book = entityManager.find(Book.class, isbn); |
||||||
|
Author author = entityManager.find(Author.class, id); |
||||||
|
book.addAuthor(author); |
||||||
|
entityManager.persist(book); |
||||||
|
entityManager.persist(author); |
||||||
|
entityManager.getTransaction().commit(); |
||||||
|
entityManager.close(); |
||||||
|
} catch (Exception ex) { |
||||||
|
entityManager.getTransaction().rollback(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void removeBook(Long isbn, Long id) { |
||||||
|
final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); |
||||||
|
try { |
||||||
|
if (!entityManager.getTransaction().isActive()) { |
||||||
|
entityManager.getTransaction().begin(); |
||||||
|
} |
||||||
|
Book book = entityManager.find(Book.class, isbn); |
||||||
|
Author author = entityManager.find(Author.class, id); |
||||||
|
book.removeAuthor(author); |
||||||
|
entityManager.persist(book); |
||||||
|
entityManager.persist(author); |
||||||
|
entityManager.getTransaction().commit(); |
||||||
|
entityManager.close(); |
||||||
|
} catch (Exception ex) { |
||||||
|
entityManager.getTransaction().rollback(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
} |
@ -0,0 +1,23 @@ |
|||||||
|
package mivan.repository; |
||||||
|
|
||||||
|
import mivan.model.Book; |
||||||
|
|
||||||
|
public interface BookRepository extends Repository<Book, Long>{ |
||||||
|
|
||||||
|
//public Optional<AddressUser> findUserAddressById(Long id);
|
||||||
|
|
||||||
|
public void deleteBookById(Long isbn); |
||||||
|
|
||||||
|
public void addBook(Book book); |
||||||
|
|
||||||
|
public void updateBook(Long isbn, String title, Book prequel); |
||||||
|
|
||||||
|
public Book searchBookByTitle(String title); |
||||||
|
|
||||||
|
public void addAuthor(Long isbn, Long id); |
||||||
|
|
||||||
|
public void removeAuthor(Long isbn, Long id); |
||||||
|
|
||||||
|
public int getSize(); |
||||||
|
} |
||||||
|
|
@ -0,0 +1,162 @@ |
|||||||
|
package mivan.repository; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
import java.util.Optional; |
||||||
|
|
||||||
|
import javax.persistence.EntityManager; |
||||||
|
import javax.persistence.EntityManagerFactory; |
||||||
|
import javax.persistence.Persistence; |
||||||
|
|
||||||
|
import mivan.model.Author; |
||||||
|
import mivan.model.Book; |
||||||
|
|
||||||
|
public class BookRepositoryImpl implements BookRepository { |
||||||
|
|
||||||
|
private EntityManagerFactory entityManagerFactory; |
||||||
|
|
||||||
|
public BookRepositoryImpl(){ |
||||||
|
this.entityManagerFactory = Persistence.createEntityManagerFactory("mivan"); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Optional<Book> findById(Long id) { |
||||||
|
final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); |
||||||
|
Book book = entityManager.find(Book.class, id); |
||||||
|
entityManager.close(); |
||||||
|
return Optional.ofNullable(book); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Iterable<Book> findAll() { |
||||||
|
final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); |
||||||
|
List<Book> book = entityManager.createQuery("FROM Book", Book.class).getResultList(); |
||||||
|
entityManager.close(); |
||||||
|
return book; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void deleteBookById(Long isbn) { |
||||||
|
final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); |
||||||
|
try { |
||||||
|
if (!entityManager.getTransaction().isActive()) { |
||||||
|
entityManager.getTransaction().begin(); |
||||||
|
} |
||||||
|
Book book = entityManager.find(Book.class, isbn); |
||||||
|
entityManager.remove(book); |
||||||
|
entityManager.getTransaction().commit(); |
||||||
|
entityManager.close(); |
||||||
|
} catch (Exception ex) { |
||||||
|
entityManager.getTransaction().rollback(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void addBook(Book book) { |
||||||
|
final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); |
||||||
|
try { |
||||||
|
if (!entityManager.getTransaction().isActive()) { |
||||||
|
entityManager.getTransaction().begin(); |
||||||
|
} |
||||||
|
entityManager.persist(book); |
||||||
|
entityManager.getTransaction().commit(); |
||||||
|
entityManager.close(); |
||||||
|
|
||||||
|
} catch (Exception ex) { |
||||||
|
entityManager.getTransaction().rollback(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void updateBook(Long isbn, String title, Book prequel) { |
||||||
|
final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); |
||||||
|
try { |
||||||
|
if (!entityManager.getTransaction().isActive()) { |
||||||
|
entityManager.getTransaction().begin(); |
||||||
|
} |
||||||
|
Book book = entityManager.find(Book.class, isbn); |
||||||
|
book.setTitle(title); |
||||||
|
entityManager.persist(book); |
||||||
|
if (prequel != null) { |
||||||
|
book.setPrequel(prequel); |
||||||
|
} |
||||||
|
entityManager.getTransaction().commit(); |
||||||
|
entityManager.close(); |
||||||
|
} catch (Exception ex) { |
||||||
|
entityManager.getTransaction().rollback(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Book searchBookByTitle(String title) { |
||||||
|
final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); |
||||||
|
|
||||||
|
Book book = null; |
||||||
|
try { |
||||||
|
book = (Book) entityManager.createQuery("FROM Book u WHERE lower(u.title) = '" + title.toLowerCase() + "'") |
||||||
|
.getSingleResult(); |
||||||
|
|
||||||
|
entityManager.close(); |
||||||
|
} catch (Exception ex) { |
||||||
|
book = null; |
||||||
|
} |
||||||
|
|
||||||
|
return book; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public int getSize() { |
||||||
|
final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); |
||||||
|
int size = 0; |
||||||
|
try { |
||||||
|
size = entityManager.createQuery("FROM Book").getResultList().size(); |
||||||
|
|
||||||
|
entityManager.close(); |
||||||
|
} catch (Exception ex) { |
||||||
|
size = 0; |
||||||
|
} |
||||||
|
return size; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Override |
||||||
|
public void addAuthor(Long isbn, Long id) { |
||||||
|
final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); |
||||||
|
try { |
||||||
|
if (!entityManager.getTransaction().isActive()) { |
||||||
|
entityManager.getTransaction().begin(); |
||||||
|
} |
||||||
|
Book book = entityManager.find(Book.class, isbn); |
||||||
|
Author author = entityManager.find(Author.class, id); |
||||||
|
book.addAuthor(author); |
||||||
|
entityManager.persist(book); |
||||||
|
entityManager.persist(author); |
||||||
|
entityManager.getTransaction().commit(); |
||||||
|
entityManager.close(); |
||||||
|
} catch (Exception ex) { |
||||||
|
entityManager.getTransaction().rollback(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void removeAuthor(Long isbn, Long id) { |
||||||
|
final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); |
||||||
|
try { |
||||||
|
if (!entityManager.getTransaction().isActive()) { |
||||||
|
entityManager.getTransaction().begin(); |
||||||
|
} |
||||||
|
Book book = entityManager.find(Book.class, isbn); |
||||||
|
Author author = entityManager.find(Author.class, id); |
||||||
|
book.removeAuthor(author); |
||||||
|
entityManager.persist(book); |
||||||
|
entityManager.persist(author); |
||||||
|
entityManager.getTransaction().commit(); |
||||||
|
entityManager.close(); |
||||||
|
} catch (Exception ex) { |
||||||
|
entityManager.getTransaction().rollback(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
} |
@ -0,0 +1,20 @@ |
|||||||
|
package mivan.repository; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
import mivan.model.Location; |
||||||
|
import mivan.model.Staff; |
||||||
|
|
||||||
|
public interface LocationRepository extends Repository<Location, Long> { |
||||||
|
|
||||||
|
public void deleteLocationById(Long id); |
||||||
|
|
||||||
|
public void addLocation(Location user); |
||||||
|
|
||||||
|
public void updateLocation(Long id, String name, String adress, List<Staff> staffs); |
||||||
|
|
||||||
|
public Location searchLocationByName(String name); |
||||||
|
|
||||||
|
public int getSize(); |
||||||
|
|
||||||
|
} |
@ -0,0 +1,114 @@ |
|||||||
|
package mivan.repository; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
import java.util.Optional; |
||||||
|
|
||||||
|
import javax.persistence.EntityManager; |
||||||
|
import javax.persistence.EntityManagerFactory; |
||||||
|
import javax.persistence.Persistence; |
||||||
|
|
||||||
|
import mivan.model.Location; |
||||||
|
import mivan.model.Staff; |
||||||
|
|
||||||
|
public class LocationRepositoryImpl implements LocationRepository { |
||||||
|
|
||||||
|
private EntityManagerFactory entityManagerFactory; |
||||||
|
|
||||||
|
public LocationRepositoryImpl() { |
||||||
|
this.entityManagerFactory = Persistence.createEntityManagerFactory("mivan"); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Optional<Location> findById(Long id) { |
||||||
|
final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); |
||||||
|
Location location = entityManager.find(Location.class, id); |
||||||
|
entityManager.close(); |
||||||
|
return Optional.ofNullable(location); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Iterable<Location> findAll() { |
||||||
|
final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); |
||||||
|
List<Location> location = entityManager.createQuery("FROM Location", Location.class).getResultList(); |
||||||
|
entityManager.close(); |
||||||
|
return location; |
||||||
|
} |
||||||
|
|
||||||
|
public void deleteLocationById(Long id) { |
||||||
|
final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); |
||||||
|
try { |
||||||
|
if (!entityManager.getTransaction().isActive()) { |
||||||
|
entityManager.getTransaction().begin(); |
||||||
|
} |
||||||
|
Location location = entityManager.find(Location.class, id); |
||||||
|
entityManager.remove(location); |
||||||
|
entityManager.getTransaction().commit(); |
||||||
|
entityManager.close(); |
||||||
|
} catch (Exception ex) { |
||||||
|
entityManager.getTransaction().rollback(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public void addLocation(Location location) { |
||||||
|
final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); |
||||||
|
try { |
||||||
|
if (!entityManager.getTransaction().isActive()) { |
||||||
|
entityManager.getTransaction().begin(); |
||||||
|
} |
||||||
|
entityManager.persist(location); |
||||||
|
entityManager.getTransaction().commit(); |
||||||
|
entityManager.close(); |
||||||
|
|
||||||
|
} catch (Exception ex) { |
||||||
|
entityManager.getTransaction().rollback(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public void updateLocation(Long id, String name, String adress, List<Staff> staffs) { |
||||||
|
final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); |
||||||
|
try { |
||||||
|
if (!entityManager.getTransaction().isActive()) { |
||||||
|
entityManager.getTransaction().begin(); |
||||||
|
} |
||||||
|
Location location = entityManager.find(Location.class, id); |
||||||
|
location.setName(name); |
||||||
|
location.setAdress(adress); |
||||||
|
location.setStaffs(staffs); |
||||||
|
entityManager.persist(location); |
||||||
|
entityManager.getTransaction().commit(); |
||||||
|
entityManager.close(); |
||||||
|
} catch (Exception ex) { |
||||||
|
entityManager.getTransaction().rollback(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public Location searchLocationByName(String name) { |
||||||
|
final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); |
||||||
|
|
||||||
|
Location location = null; |
||||||
|
try { |
||||||
|
location = (Location) entityManager |
||||||
|
.createQuery("FROM Location u WHERE lower(u.name) = '" + name.toLowerCase() + "'") |
||||||
|
.getSingleResult(); |
||||||
|
|
||||||
|
entityManager.close(); |
||||||
|
} catch (Exception ex) { |
||||||
|
location = null; |
||||||
|
} |
||||||
|
|
||||||
|
return location; |
||||||
|
} |
||||||
|
|
||||||
|
public int getSize() { |
||||||
|
final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); |
||||||
|
int size = 0; |
||||||
|
try { |
||||||
|
size = entityManager.createQuery("FROM Location").getResultList().size(); |
||||||
|
|
||||||
|
entityManager.close(); |
||||||
|
} catch (Exception ex) { |
||||||
|
size = 0; |
||||||
|
} |
||||||
|
return size; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,8 @@ |
|||||||
|
package mivan.repository; |
||||||
|
|
||||||
|
import java.util.Optional; |
||||||
|
|
||||||
|
public interface Repository<T, ID> { |
||||||
|
Optional<T> findById(ID id); |
||||||
|
Iterable<T> findAll(); |
||||||
|
} |
@ -0,0 +1,21 @@ |
|||||||
|
package mivan.repository; |
||||||
|
|
||||||
|
import mivan.model.Location; |
||||||
|
import mivan.model.Staff; |
||||||
|
|
||||||
|
|
||||||
|
public interface StaffRepository extends Repository<Staff, Long>{ |
||||||
|
|
||||||
|
public void deleteStaffById(Long id); |
||||||
|
|
||||||
|
public void addStaff(Staff user); |
||||||
|
|
||||||
|
public void updateStaff(Long id, String firstname, String lastname, String city, String idka, String ruolo, Location location); |
||||||
|
|
||||||
|
public Staff searchStaffByidka(String idka); |
||||||
|
|
||||||
|
//public List<Staff> searchStaffByRole(String role);
|
||||||
|
|
||||||
|
|
||||||
|
public int getSize(); |
||||||
|
} |
@ -0,0 +1,118 @@ |
|||||||
|
package mivan.repository; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
import java.util.Optional; |
||||||
|
|
||||||
|
import javax.persistence.EntityManager; |
||||||
|
import javax.persistence.EntityManagerFactory; |
||||||
|
import javax.persistence.Persistence; |
||||||
|
|
||||||
|
import mivan.model.Location; |
||||||
|
import mivan.model.Staff; |
||||||
|
|
||||||
|
public class StaffRepositoryImpl implements StaffRepository{ |
||||||
|
|
||||||
|
private EntityManagerFactory entityManagerFactory; |
||||||
|
|
||||||
|
public StaffRepositoryImpl() { |
||||||
|
this.entityManagerFactory = Persistence.createEntityManagerFactory("mivan"); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Optional<Staff> findById(Long id) { |
||||||
|
final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); |
||||||
|
Staff staff = entityManager.find(Staff.class, id); |
||||||
|
entityManager.close(); |
||||||
|
return Optional.ofNullable(staff); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
@Override |
||||||
|
public Iterable<Staff> findAll() { |
||||||
|
final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); |
||||||
|
List<Staff> staffs = entityManager.createQuery("FROM Staff", Staff.class).getResultList(); |
||||||
|
entityManager.close(); |
||||||
|
return staffs; |
||||||
|
} |
||||||
|
|
||||||
|
public void deleteStaffById(Long id) { |
||||||
|
final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); |
||||||
|
try { |
||||||
|
if (!entityManager.getTransaction().isActive()) { |
||||||
|
entityManager.getTransaction().begin(); |
||||||
|
} |
||||||
|
Staff staff = entityManager.find(Staff.class, id); |
||||||
|
entityManager.remove(staff); |
||||||
|
entityManager.getTransaction().commit(); |
||||||
|
entityManager.close(); |
||||||
|
} catch (Exception ex) { |
||||||
|
entityManager.getTransaction().rollback(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public void addStaff(Staff staff) { |
||||||
|
final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); |
||||||
|
try { |
||||||
|
if (!entityManager.getTransaction().isActive()) { |
||||||
|
entityManager.getTransaction().begin(); |
||||||
|
} |
||||||
|
entityManager.persist(staff); |
||||||
|
entityManager.getTransaction().commit(); |
||||||
|
entityManager.close(); |
||||||
|
} catch (Exception ex) { |
||||||
|
entityManager.getTransaction().rollback(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
public void updateStaff(Long id, String firstname, String lastname, String city,String idka,String ruolo,Location location) { |
||||||
|
final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); |
||||||
|
try { |
||||||
|
if (!entityManager.getTransaction().isActive()) { |
||||||
|
entityManager.getTransaction().begin(); |
||||||
|
} |
||||||
|
Staff staff = entityManager.find(Staff.class, id); |
||||||
|
staff.setFirstName(firstname); |
||||||
|
staff.setLastName(lastname); |
||||||
|
staff.setCity(city); |
||||||
|
staff.setIdka(idka); |
||||||
|
staff.setRuolo(ruolo); |
||||||
|
staff.setLocation(location); |
||||||
|
|
||||||
|
entityManager.persist(staff); |
||||||
|
entityManager.getTransaction().commit(); |
||||||
|
entityManager.close(); |
||||||
|
} catch (Exception ex) { |
||||||
|
entityManager.getTransaction().rollback(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public Staff searchStaffByidka(String idka) { |
||||||
|
final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); |
||||||
|
|
||||||
|
Staff staff = null; |
||||||
|
try { |
||||||
|
staff = (Staff) entityManager.createQuery("FROM Staff u WHERE lower(u.idka) = '" + idka.toLowerCase() + "'") |
||||||
|
.getSingleResult(); |
||||||
|
|
||||||
|
entityManager.close(); |
||||||
|
} catch (Exception ex) { |
||||||
|
staff = null; |
||||||
|
} |
||||||
|
|
||||||
|
return staff; |
||||||
|
} |
||||||
|
|
||||||
|
public int getSize() { |
||||||
|
final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); |
||||||
|
int size = 0; |
||||||
|
try { |
||||||
|
size = entityManager.createQuery("FROM Staff").getResultList().size(); |
||||||
|
|
||||||
|
entityManager.close(); |
||||||
|
} catch (Exception ex) { |
||||||
|
size = 0; |
||||||
|
} |
||||||
|
return size; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,21 @@ |
|||||||
|
package mivan.repository; |
||||||
|
|
||||||
|
import mivan.model.User; |
||||||
|
|
||||||
|
public interface UserRepository extends Repository<User, Long>{ |
||||||
|
|
||||||
|
//public Optional<AddressUser> findUserAddressById(Long id);
|
||||||
|
|
||||||
|
public void deleteUserById(Long id); |
||||||
|
|
||||||
|
public void addUser(User user); |
||||||
|
|
||||||
|
public void updateUser(Long id, String firstname, String lastname, String city,String username, String email, String password); |
||||||
|
|
||||||
|
public User searchUserByName(String username); |
||||||
|
|
||||||
|
public User searchUserByEmail(String email); |
||||||
|
|
||||||
|
|
||||||
|
public int getSize(); |
||||||
|
} |
@ -0,0 +1,133 @@ |
|||||||
|
package mivan.repository; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
import java.util.Optional; |
||||||
|
|
||||||
|
import javax.persistence.EntityManager; |
||||||
|
import javax.persistence.EntityManagerFactory; |
||||||
|
import javax.persistence.Persistence; |
||||||
|
|
||||||
|
|
||||||
|
import mivan.model.User; |
||||||
|
|
||||||
|
public class UserRepositoryImpl implements UserRepository { |
||||||
|
|
||||||
|
private EntityManagerFactory entityManagerFactory; |
||||||
|
|
||||||
|
public UserRepositoryImpl() { |
||||||
|
this.entityManagerFactory = Persistence.createEntityManagerFactory("mivan"); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Optional<User> findById(Long id) { |
||||||
|
final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); |
||||||
|
User user = entityManager.find(User.class, id); |
||||||
|
entityManager.close(); |
||||||
|
return Optional.ofNullable(user); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Iterable<User> findAll() { |
||||||
|
final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); |
||||||
|
List<User> users = entityManager.createQuery("FROM User", User.class).getResultList(); |
||||||
|
entityManager.close(); |
||||||
|
return users; |
||||||
|
} |
||||||
|
|
||||||
|
public void deleteUserById(Long id) { |
||||||
|
final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); |
||||||
|
try { |
||||||
|
if (!entityManager.getTransaction().isActive()) { |
||||||
|
entityManager.getTransaction().begin(); |
||||||
|
} |
||||||
|
User user = entityManager.find(User.class, id); |
||||||
|
entityManager.remove(user); |
||||||
|
entityManager.getTransaction().commit(); |
||||||
|
entityManager.close(); |
||||||
|
} catch (Exception ex) { |
||||||
|
entityManager.getTransaction().rollback(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public void addUser(User user) { |
||||||
|
final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); |
||||||
|
try { |
||||||
|
if (!entityManager.getTransaction().isActive()) { |
||||||
|
entityManager.getTransaction().begin(); |
||||||
|
} |
||||||
|
entityManager.persist(user); |
||||||
|
entityManager.getTransaction().commit(); |
||||||
|
entityManager.close(); |
||||||
|
|
||||||
|
} catch (Exception ex) { |
||||||
|
entityManager.getTransaction().rollback(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
public void updateUser(Long id, String firstname, String lastname, String city,String username, String email, String password) { |
||||||
|
final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); |
||||||
|
try { |
||||||
|
if (!entityManager.getTransaction().isActive()) { |
||||||
|
entityManager.getTransaction().begin(); |
||||||
|
} |
||||||
|
User user = entityManager.find(User.class, id); |
||||||
|
user.setFirstName(firstname); |
||||||
|
user.setLastName(lastname); |
||||||
|
user.setCity(city); |
||||||
|
user.setUsername(username); |
||||||
|
user.setEmail(email); |
||||||
|
user.setPassword(password); |
||||||
|
entityManager.persist(user); |
||||||
|
entityManager.getTransaction().commit(); |
||||||
|
entityManager.close(); |
||||||
|
} catch (Exception ex) { |
||||||
|
entityManager.getTransaction().rollback(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public User searchUserByName(String username) { |
||||||
|
final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); |
||||||
|
|
||||||
|
User user = null; |
||||||
|
try { |
||||||
|
user = (User) entityManager.createQuery("FROM User u WHERE lower(u.username) = '" + username.toLowerCase() + "'") |
||||||
|
.getSingleResult(); |
||||||
|
|
||||||
|
entityManager.close(); |
||||||
|
} catch (Exception ex) { |
||||||
|
user = null; |
||||||
|
} |
||||||
|
|
||||||
|
return user; |
||||||
|
} |
||||||
|
|
||||||
|
public User searchUserByEmail(String email) { |
||||||
|
final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); |
||||||
|
|
||||||
|
User user = null; |
||||||
|
try { |
||||||
|
user = (User) entityManager.createQuery("FROM User u WHERE lower(u.email) = '" + email.toLowerCase() + "'") |
||||||
|
.getSingleResult(); |
||||||
|
|
||||||
|
entityManager.close(); |
||||||
|
} catch (Exception ex) { |
||||||
|
user = null; |
||||||
|
} |
||||||
|
|
||||||
|
return user; |
||||||
|
} |
||||||
|
|
||||||
|
public int getSize() { |
||||||
|
final EntityManager entityManager = this.entityManagerFactory.createEntityManager(); |
||||||
|
int size = 0; |
||||||
|
try { |
||||||
|
size = entityManager.createQuery("FROM User").getResultList().size(); |
||||||
|
|
||||||
|
entityManager.close(); |
||||||
|
} catch (Exception ex) { |
||||||
|
size = 0; |
||||||
|
} |
||||||
|
return size; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,27 @@ |
|||||||
|
<persistence xmlns="http://java.sun.com/xml/ns/persistence" |
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
||||||
|
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" |
||||||
|
version="2.0"> |
||||||
|
<persistence-unit |
||||||
|
name="mivan"> |
||||||
|
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider> |
||||||
|
<properties> |
||||||
|
<property name="javax.persistence.jdbc.driver" |
||||||
|
value="org.h2.Driver" /> |
||||||
|
<property name="javax.persistence.jdbc.url" |
||||||
|
value="jdbc:h2:mem:mivanDB" /> |
||||||
|
<property name="javax.persistence.jdbc.user" |
||||||
|
value="password" /> |
||||||
|
<property name="javax.persistence.jdbc.password" |
||||||
|
value="password" /> |
||||||
|
<property name="hibernate.dialect" |
||||||
|
value="org.hibernate.dialect.H2Dialect" /> |
||||||
|
<property name="hibernate.hbm2ddl.auto" value="create-drop" /> |
||||||
|
<property name="hibernate.show_sql" value="true" /> |
||||||
|
<property name="hibernate.format_sql" value="true" /> |
||||||
|
|
||||||
|
|
||||||
|
</properties> |
||||||
|
</persistence-unit> |
||||||
|
</persistence> |
||||||
|
|
@ -0,0 +1,2 @@ |
|||||||
|
spring.application.name=Mivan |
||||||
|
spring.datasource.url=jdbc:h2:file:./data/demo |
@ -0,0 +1,30 @@ |
|||||||
|
package mivan; |
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertEquals; |
||||||
|
|
||||||
|
import java.util.Optional; |
||||||
|
|
||||||
|
import org.junit.jupiter.api.Order; |
||||||
|
import org.junit.jupiter.api.Test; |
||||||
|
import org.junit.jupiter.api.TestMethodOrder; |
||||||
|
import org.junit.jupiter.api.MethodOrderer.OrderAnnotation; |
||||||
|
|
||||||
|
import mivan.model.Author; |
||||||
|
import mivan.repository.AuthorRepository; |
||||||
|
import mivan.repository.AuthorRepositoryImpl; |
||||||
|
import mivan.repository.BookRepository; |
||||||
|
import mivan.repository.BookRepositoryImpl; |
||||||
|
|
||||||
|
@TestMethodOrder(OrderAnnotation.class) |
||||||
|
public class AuthorBookTest { |
||||||
|
|
||||||
|
private AuthorRepository authorRepository = new AuthorRepositoryImpl(); |
||||||
|
|
||||||
|
private BookRepository bookRepository = new BookRepositoryImpl(); |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
} |
@ -0,0 +1,78 @@ |
|||||||
|
package mivan; |
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertEquals; |
||||||
|
|
||||||
|
import java.util.Optional; |
||||||
|
|
||||||
|
import org.junit.jupiter.api.Order; |
||||||
|
import org.junit.jupiter.api.Test; |
||||||
|
import org.junit.jupiter.api.TestMethodOrder; |
||||||
|
import org.junit.jupiter.api.MethodOrderer.OrderAnnotation; |
||||||
|
|
||||||
|
import mivan.model.Author; |
||||||
|
import mivan.repository.AuthorRepository; |
||||||
|
import mivan.repository.AuthorRepositoryImpl; |
||||||
|
|
||||||
|
@TestMethodOrder(OrderAnnotation.class) |
||||||
|
public class AuthorTest { |
||||||
|
|
||||||
|
private AuthorRepository authorRepository = new AuthorRepositoryImpl(); |
||||||
|
|
||||||
|
|
||||||
|
@Test |
||||||
|
@Order(1) |
||||||
|
void testAddAuthor() { |
||||||
|
|
||||||
|
|
||||||
|
String name = "Ivan"; |
||||||
|
|
||||||
|
Author author = new Author(name); |
||||||
|
|
||||||
|
authorRepository.addAuthor(author); |
||||||
|
|
||||||
|
int size = authorRepository.getSize(); |
||||||
|
|
||||||
|
|
||||||
|
assertEquals(size, 1); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
@Order(2) |
||||||
|
void testUpdateAuthor() { |
||||||
|
|
||||||
|
String name = "Ivan"; |
||||||
|
|
||||||
|
Author author = new Author(name); |
||||||
|
|
||||||
|
authorRepository.addAuthor(author); |
||||||
|
|
||||||
|
String updatedName ="Javoso"; |
||||||
|
|
||||||
|
authorRepository.updateAuthor(author.getId(), updatedName); |
||||||
|
Optional<Author> updated_author = authorRepository.findById(author.getId()); |
||||||
|
updated_author.ifPresent(a -> {assertEquals(a.getName(), updatedName);}); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
@Order(3) |
||||||
|
void testDeleteUser() { |
||||||
|
int size = authorRepository.getSize(); |
||||||
|
String name = "gollum"; |
||||||
|
|
||||||
|
Author author = new Author(name); |
||||||
|
|
||||||
|
authorRepository.addAuthor(author); |
||||||
|
|
||||||
|
Author editAuthor = authorRepository.searchAuthorByName(name); |
||||||
|
|
||||||
|
long ID = editAuthor.getId(); |
||||||
|
|
||||||
|
authorRepository.deleteAuthorById(ID); |
||||||
|
|
||||||
|
int end_size = authorRepository.getSize(); |
||||||
|
assertEquals(end_size, size); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
} |
@ -0,0 +1,88 @@ |
|||||||
|
package mivan; |
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertEquals; |
||||||
|
import static org.junit.jupiter.api.Assertions.assertTrue; |
||||||
|
|
||||||
|
import java.util.Optional; |
||||||
|
|
||||||
|
import javax.validation.constraints.AssertTrue; |
||||||
|
|
||||||
|
import org.junit.jupiter.api.Order; |
||||||
|
import org.junit.jupiter.api.Test; |
||||||
|
|
||||||
|
import mivan.model.Author; |
||||||
|
import mivan.model.Book; |
||||||
|
import mivan.model.User; |
||||||
|
import mivan.repository.BookRepository; |
||||||
|
import mivan.repository.BookRepositoryImpl; |
||||||
|
|
||||||
|
public class BookTest { |
||||||
|
|
||||||
|
|
||||||
|
private BookRepository bookRepository = new BookRepositoryImpl(); |
||||||
|
|
||||||
|
|
||||||
|
@Test |
||||||
|
@Order(1) |
||||||
|
void testAddBook() { |
||||||
|
|
||||||
|
long isbn = 1234; |
||||||
|
String title = "illiade"; |
||||||
|
Book prequel = null; |
||||||
|
|
||||||
|
Book book = new Book(isbn, title, prequel); |
||||||
|
|
||||||
|
bookRepository.addBook(book); |
||||||
|
|
||||||
|
int size = bookRepository.getSize(); |
||||||
|
|
||||||
|
|
||||||
|
assertEquals(size, 1); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
@Order(2) |
||||||
|
void testUpdateBook(){ |
||||||
|
long isbn = 12348; |
||||||
|
String title = "odissea"; |
||||||
|
Book prequel = null; |
||||||
|
|
||||||
|
Book book = new Book(isbn, title, prequel); |
||||||
|
|
||||||
|
bookRepository.addBook(book); |
||||||
|
String update_title = "eneide"; |
||||||
|
bookRepository.updateBook(isbn, update_title, prequel); |
||||||
|
|
||||||
|
Optional<Book> opt_book2 = bookRepository.findById(isbn); |
||||||
|
|
||||||
|
Book book2 = opt_book2.get(); |
||||||
|
assertTrue(update_title.equals(book2.getTitle())); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
@Test |
||||||
|
@Order(3) |
||||||
|
void testDeleteBook() { |
||||||
|
int start_size = bookRepository.getSize(); |
||||||
|
long isbn = 12345; |
||||||
|
String title = "illiade"; |
||||||
|
Book prequel = null; |
||||||
|
|
||||||
|
Book book = new Book(isbn, title, prequel); |
||||||
|
|
||||||
|
bookRepository.addBook(book); |
||||||
|
|
||||||
|
Optional<Book> opt_book2 = bookRepository.findById(isbn); |
||||||
|
|
||||||
|
Book book2 = opt_book2.get(); |
||||||
|
long ID = book2.getIsbn(); |
||||||
|
|
||||||
|
bookRepository.deleteBookById(ID); |
||||||
|
|
||||||
|
int size = bookRepository.getSize(); |
||||||
|
assertEquals(start_size,size); |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,116 @@ |
|||||||
|
package mivan; |
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertEquals; |
||||||
|
|
||||||
|
import java.util.ArrayList; |
||||||
|
import java.util.List; |
||||||
|
import java.util.Optional; |
||||||
|
|
||||||
|
import org.junit.jupiter.api.Order; |
||||||
|
import org.junit.jupiter.api.Test; |
||||||
|
import org.junit.jupiter.api.TestMethodOrder; |
||||||
|
import org.junit.jupiter.api.MethodOrderer.OrderAnnotation; |
||||||
|
|
||||||
|
import mivan.model.Location; |
||||||
|
import mivan.model.Staff; |
||||||
|
import mivan.repository.LocationRepository; |
||||||
|
import mivan.repository.LocationRepositoryImpl; |
||||||
|
import mivan.repository.StaffRepository; |
||||||
|
import mivan.repository.StaffRepositoryImpl; |
||||||
|
|
||||||
|
@TestMethodOrder(OrderAnnotation.class) |
||||||
|
public class LocationTest { |
||||||
|
|
||||||
|
private StaffRepository staffRepository = new StaffRepositoryImpl(); |
||||||
|
private LocationRepository locationRepository = new LocationRepositoryImpl(); |
||||||
|
|
||||||
|
@Test |
||||||
|
@Order(1) |
||||||
|
void testAddLocation() { |
||||||
|
|
||||||
|
String lname = "Library bria 2"; |
||||||
|
String ladress = "via chissa dove2"; |
||||||
|
Location location = new Location(lname, ladress); |
||||||
|
|
||||||
|
int size = locationRepository.getSize(); |
||||||
|
|
||||||
|
locationRepository.addLocation(location); |
||||||
|
|
||||||
|
int newsize = locationRepository.getSize(); |
||||||
|
|
||||||
|
assertEquals(newsize, size + 1); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
@Order(2) |
||||||
|
void testUpdateLocation() { |
||||||
|
|
||||||
|
// creo nuovo menìmbro dello staff
|
||||||
|
String firstname = "Ivan"; |
||||||
|
String lastname = "Donati"; |
||||||
|
String city = "Milano"; |
||||||
|
String idka = "lihwelhqluchwlir8"; |
||||||
|
String ruolo = "frontoffice"; |
||||||
|
Staff newstaff1 = new Staff(firstname, lastname, city, idka, ruolo); |
||||||
|
|
||||||
|
String firstname2 = "Rossi"; |
||||||
|
String lastname2 = "Donati"; |
||||||
|
String city2 = "Milano"; |
||||||
|
String idka2 = "lihwelhsfgdghhwlir8"; |
||||||
|
String ruolo2 = "manager"; |
||||||
|
Staff newstaff2 = new Staff(firstname2, lastname2, city2, idka2, ruolo2); |
||||||
|
|
||||||
|
staffRepository.addStaff(newstaff1); |
||||||
|
staffRepository.addStaff(newstaff2); |
||||||
|
|
||||||
|
List<Staff> staffs = new ArrayList<Staff>(); |
||||||
|
staffs.add(newstaff1); |
||||||
|
staffs.add(newstaff2); |
||||||
|
|
||||||
|
// creo una locazione
|
||||||
|
String lname = "Library cosa 2"; |
||||||
|
String ladress = "via chissa dove"; |
||||||
|
Location newlocation = new Location(lname, ladress); |
||||||
|
locationRepository.addLocation(newlocation); |
||||||
|
|
||||||
|
Location editLocation = locationRepository.searchLocationByName(lname); |
||||||
|
|
||||||
|
long id = editLocation.getId(); |
||||||
|
// nuovi dati per modificare i vecchi
|
||||||
|
String newlName = "Library bria 5"; |
||||||
|
String newlAdress = "via prossima stella"; |
||||||
|
|
||||||
|
// aggungo i membri dello staff / modifico i dati della location
|
||||||
|
locationRepository.updateLocation(id, newlName, newlAdress, staffs); |
||||||
|
|
||||||
|
Optional<Location> location = locationRepository.findById(id); |
||||||
|
location.ifPresent(a -> { |
||||||
|
assertEquals(a.getName(), newlName); |
||||||
|
assertEquals(a.getAdress(), newlAdress); |
||||||
|
assertEquals(a.getStaffs(), staffs); |
||||||
|
}); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
@Order(3) |
||||||
|
void testDeleteLocation() { |
||||||
|
|
||||||
|
String lname = "Library bria 9"; |
||||||
|
String ladress = "via chissa dove9"; |
||||||
|
Location location = new Location(lname, ladress); |
||||||
|
locationRepository.addLocation(location); |
||||||
|
|
||||||
|
Location removeLocation = locationRepository.searchLocationByName(lname); |
||||||
|
|
||||||
|
long ID = removeLocation.getId(); |
||||||
|
|
||||||
|
int size = locationRepository.getSize(); |
||||||
|
|
||||||
|
locationRepository.deleteLocationById(ID); |
||||||
|
|
||||||
|
int newsize = locationRepository.getSize(); |
||||||
|
|
||||||
|
assertEquals(newsize, size -1); |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,146 @@ |
|||||||
|
package mivan; |
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertEquals; |
||||||
|
|
||||||
|
import java.util.Optional; |
||||||
|
|
||||||
|
import org.junit.jupiter.api.Order; |
||||||
|
import org.junit.jupiter.api.Test; |
||||||
|
import org.junit.jupiter.api.TestMethodOrder; |
||||||
|
import org.junit.jupiter.api.MethodOrderer.OrderAnnotation; |
||||||
|
|
||||||
|
import mivan.model.Location; |
||||||
|
import mivan.model.Staff; |
||||||
|
import mivan.repository.LocationRepository; |
||||||
|
import mivan.repository.LocationRepositoryImpl; |
||||||
|
import mivan.repository.StaffRepository; |
||||||
|
import mivan.repository.StaffRepositoryImpl; |
||||||
|
|
||||||
|
@TestMethodOrder(OrderAnnotation.class) |
||||||
|
public class StaffTest { |
||||||
|
|
||||||
|
private StaffRepository staffRepository = new StaffRepositoryImpl(); |
||||||
|
private LocationRepository locationRepository = new LocationRepositoryImpl(); |
||||||
|
|
||||||
|
@Test |
||||||
|
@Order(1) |
||||||
|
void testAddStaff() { |
||||||
|
|
||||||
|
String firstname = "Ivan"; |
||||||
|
String lastname = "Donati"; |
||||||
|
String city = "Milano"; |
||||||
|
String idka = "lihwelhqluchwlir8"; |
||||||
|
String ruolo = "frontoffice"; |
||||||
|
|
||||||
|
String lname = "Library bria 2"; |
||||||
|
String ladress = "via chissa dove"; |
||||||
|
Location location = new Location(lname, ladress); |
||||||
|
locationRepository.addLocation(location); |
||||||
|
|
||||||
|
Staff newstaff = new Staff(firstname, lastname, city, idka, ruolo, location); |
||||||
|
|
||||||
|
int size = staffRepository.getSize(); |
||||||
|
|
||||||
|
staffRepository.addStaff(newstaff); |
||||||
|
|
||||||
|
int newsize = staffRepository.getSize(); |
||||||
|
|
||||||
|
assertEquals(newsize, size + 1); |
||||||
|
|
||||||
|
Iterable<Staff> sad2 = staffRepository.findAll(); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
@Order(2) |
||||||
|
void testUpdateStaff() { |
||||||
|
|
||||||
|
// creo una locazione
|
||||||
|
String lname = "Library cosa 2"; |
||||||
|
String ladress = "via chissa dove"; |
||||||
|
Location location = new Location(lname, ladress); |
||||||
|
|
||||||
|
// creo una seconda locazione
|
||||||
|
String newlName = "Library destra 5"; |
||||||
|
String newlAdress = "via prossima stella"; |
||||||
|
Location newlocation = new Location(newlName, newlAdress); |
||||||
|
|
||||||
|
int losize = locationRepository.getSize(); |
||||||
|
|
||||||
|
locationRepository.addLocation(location); |
||||||
|
locationRepository.addLocation(newlocation); |
||||||
|
|
||||||
|
int newlosize = locationRepository.getSize(); |
||||||
|
|
||||||
|
assertEquals(newlosize, losize + 2); // ci sono 2 locazioni aggunte
|
||||||
|
|
||||||
|
// creo un membro dello staff
|
||||||
|
String firstname = "Maccio"; |
||||||
|
String lastname = "Donati"; |
||||||
|
String city = "Milano"; |
||||||
|
String idka = "lihwelhqluchwlir8"; |
||||||
|
String ruolo = "frontoffice"; |
||||||
|
Staff newstaff = new Staff(firstname, lastname, city, idka, ruolo); |
||||||
|
|
||||||
|
int size = staffRepository.getSize(); |
||||||
|
|
||||||
|
staffRepository.addStaff(newstaff); |
||||||
|
|
||||||
|
int newsize = staffRepository.getSize(); |
||||||
|
|
||||||
|
assertEquals(newsize, size + 1); // c'è 1 nuovo membro dello staff
|
||||||
|
|
||||||
|
Staff editStaff = staffRepository.searchStaffByidka(idka); |
||||||
|
|
||||||
|
long id = editStaff.getId(); |
||||||
|
String newfirstname = "Ivans"; |
||||||
|
String newlastname = "Donatis"; |
||||||
|
String newcity = "Milanos"; |
||||||
|
String newidka = "lihwelhkluchwlir5"; |
||||||
|
String newruolo = "spazzino"; |
||||||
|
|
||||||
|
staffRepository.updateStaff(id, newfirstname, newlastname, newcity, newidka, newruolo, newlocation); |
||||||
|
|
||||||
|
Optional<Staff> staff = staffRepository.findById(id); |
||||||
|
staff.ifPresent(a -> { |
||||||
|
assertEquals(a.getFirstName(), newfirstname); |
||||||
|
assertEquals(a.getLastName(), newlastname); |
||||||
|
assertEquals(a.getCity(), newcity); |
||||||
|
assertEquals(a.getIdka(), newidka); |
||||||
|
assertEquals(a.getRuolo(), newruolo); |
||||||
|
assertEquals(a.getLocation().getName(), newlName); |
||||||
|
assertEquals(a.getLocation().getAdress(), newlAdress); |
||||||
|
|
||||||
|
}); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
@Order(3) |
||||||
|
void testDeleteStaff() { |
||||||
|
|
||||||
|
String firstname = "John"; |
||||||
|
String lastname = "Donati"; |
||||||
|
String city = "Milano"; |
||||||
|
String idka = "lihwelhsfghhwlir8"; |
||||||
|
String ruolo = "manager"; |
||||||
|
|
||||||
|
String lname = "Library siniz 2"; |
||||||
|
String ladress = "via sassa dove"; |
||||||
|
Location location = new Location(lname, ladress); |
||||||
|
locationRepository.addLocation(location); |
||||||
|
|
||||||
|
Staff newstaff = new Staff(firstname, lastname, city, idka, ruolo, location); |
||||||
|
|
||||||
|
staffRepository.addStaff(newstaff); |
||||||
|
|
||||||
|
Staff editStaff = staffRepository.searchStaffByidka(idka); |
||||||
|
|
||||||
|
long ID = editStaff.getId(); |
||||||
|
|
||||||
|
staffRepository.deleteStaffById(ID); |
||||||
|
; |
||||||
|
|
||||||
|
int size = staffRepository.getSize(); |
||||||
|
assertEquals(size, 0); |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,109 @@ |
|||||||
|
package mivan; |
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.*; |
||||||
|
|
||||||
|
import java.util.Optional; |
||||||
|
|
||||||
|
import org.junit.jupiter.api.MethodOrderer.OrderAnnotation; |
||||||
|
|
||||||
|
import mivan.model.User; |
||||||
|
import mivan.repository.UserRepository; |
||||||
|
import mivan.repository.UserRepositoryImpl; |
||||||
|
|
||||||
|
import org.junit.jupiter.api.Order; |
||||||
|
import org.junit.jupiter.api.Test; |
||||||
|
import org.junit.jupiter.api.TestMethodOrder; |
||||||
|
|
||||||
|
@TestMethodOrder(OrderAnnotation.class) |
||||||
|
class UserTest { |
||||||
|
|
||||||
|
private UserRepository userRepository = new UserRepositoryImpl(); |
||||||
|
|
||||||
|
@Test |
||||||
|
@Order(1) |
||||||
|
void testAddUser() { |
||||||
|
|
||||||
|
String firstname = "Ivan"; |
||||||
|
String lastname = "Donati"; |
||||||
|
String city = "Milano"; |
||||||
|
String username = "p.donati"; |
||||||
|
String email = "p.donati@campus.unimib.it"; |
||||||
|
String password = "pdonatipassword"; |
||||||
|
User user = new User(firstname, lastname, city, username, email, password); |
||||||
|
|
||||||
|
int size = userRepository.getSize(); |
||||||
|
|
||||||
|
userRepository.addUser(user); |
||||||
|
|
||||||
|
int newsize = userRepository.getSize(); |
||||||
|
|
||||||
|
assertEquals(newsize, size + 1); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
@Order(2) |
||||||
|
void testUpdateCompany() { |
||||||
|
|
||||||
|
String firstname = "Simone"; |
||||||
|
String lastname = "Donati"; |
||||||
|
String city = "Milano"; |
||||||
|
String username = "i.donati"; |
||||||
|
String email = "i.donati@campus.unimib.it"; |
||||||
|
String password = "passwordsicura"; |
||||||
|
|
||||||
|
User newuser = new User(firstname, lastname, city, username, email, password); |
||||||
|
|
||||||
|
userRepository.addUser(newuser); |
||||||
|
|
||||||
|
User editUser = userRepository.searchUserByName(username); |
||||||
|
|
||||||
|
long id = editUser.getId(); |
||||||
|
|
||||||
|
String newfirstname = "Ivans"; |
||||||
|
String newlastname = "Donatis"; |
||||||
|
String newcity = "Milanos"; |
||||||
|
String newusername = "asd.donati1s"; |
||||||
|
String newemail = "asd.donati@campus.unimib.com"; |
||||||
|
String newpassword = "newpdonatipassword"; |
||||||
|
|
||||||
|
userRepository.updateUser(id, newfirstname, newlastname, newcity, newusername, newemail, newpassword); |
||||||
|
|
||||||
|
Optional<User> user = userRepository.findById(id); |
||||||
|
user.ifPresent(a -> { |
||||||
|
assertEquals(a.getFirstName(), newfirstname); |
||||||
|
assertEquals(a.getLastName(), newlastname); |
||||||
|
assertEquals(a.getCity(), newcity); |
||||||
|
assertEquals(a.getUsername(), newusername); |
||||||
|
assertEquals(a.getEmail(), newemail); |
||||||
|
assertEquals(a.getPassword(), newpassword); |
||||||
|
|
||||||
|
}); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
@Order(3) |
||||||
|
void testDeleteUser() { |
||||||
|
|
||||||
|
String firstname = "Rossi"; |
||||||
|
String lastname = "Donati"; |
||||||
|
String city = "Milano"; |
||||||
|
String username = "r.donati"; |
||||||
|
String email = "r.donati@campus.unimib.it"; |
||||||
|
String password = "rdonatipassword"; |
||||||
|
|
||||||
|
User newuser = new User(firstname, lastname, city, username, email, password); |
||||||
|
|
||||||
|
userRepository.addUser(newuser); |
||||||
|
|
||||||
|
User editUser = userRepository.searchUserByName(username); |
||||||
|
|
||||||
|
long ID = editUser.getId(); |
||||||
|
|
||||||
|
int size = userRepository.getSize(); |
||||||
|
|
||||||
|
userRepository.deleteUserById(ID); |
||||||
|
|
||||||
|
int newsize = userRepository.getSize(); |
||||||
|
assertEquals(newsize, size - 1); |
||||||
|
} |
||||||
|
} |
Binary file not shown.
@ -1,13 +0,0 @@ |
|||||||
package com.unimib.disco.mivan.multibook; |
|
||||||
|
|
||||||
import org.springframework.boot.SpringApplication; |
|
||||||
import org.springframework.boot.autoconfigure.SpringBootApplication; |
|
||||||
|
|
||||||
@SpringBootApplication |
|
||||||
public class MultibookApplication { |
|
||||||
|
|
||||||
public static void main(String[] args) { |
|
||||||
SpringApplication.run(MultibookApplication.class, args); |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
@ -1,24 +0,0 @@ |
|||||||
package com.unimib.disco.mivan.multibook.controller; |
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired; |
|
||||||
|
|
||||||
import com.unimib.disco.mivan.multibook.model.User; |
|
||||||
import com.unimib.disco.mivan.multibook.repository.UserRepository; |
|
||||||
|
|
||||||
public class UserController { |
|
||||||
|
|
||||||
@Autowired |
|
||||||
UserRepository userRepository; |
|
||||||
|
|
||||||
|
|
||||||
public void createUser(String firstName, String lastName, String city,String username, String email, String password) { |
|
||||||
|
|
||||||
User user = new User(firstName, lastName, city,username,email,password); |
|
||||||
|
|
||||||
userRepository.save(user); |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
} |
|
||||||
} |
|
@ -1,55 +0,0 @@ |
|||||||
/*package com.unimib.disco.mivan.multibook.model; |
|
||||||
|
|
||||||
import java.util.List; |
|
||||||
|
|
||||||
import javax.persistence.*; |
|
||||||
|
|
||||||
public class Author { |
|
||||||
|
|
||||||
|
|
||||||
@Id |
|
||||||
@Column(name = "id", nullable=false) |
|
||||||
@GeneratedValue(strategy = GenerationType.AUTO) |
|
||||||
private long id; |
|
||||||
|
|
||||||
@Column(name = "firstName", nullable=false) |
|
||||||
private String artName; |
|
||||||
|
|
||||||
@ManyToMany |
|
||||||
List<Book> publications; |
|
||||||
|
|
||||||
public Author() { |
|
||||||
// TODO Auto-generated constructor stub
|
|
||||||
} |
|
||||||
|
|
||||||
public Author(String artName, List<Book> publications) { |
|
||||||
super(); |
|
||||||
this.artName = artName; |
|
||||||
this.publications = publications; |
|
||||||
} |
|
||||||
|
|
||||||
public long getId() { |
|
||||||
return id; |
|
||||||
} |
|
||||||
|
|
||||||
public void setId(long id) { |
|
||||||
this.id = id; |
|
||||||
} |
|
||||||
|
|
||||||
public String getArtName() { |
|
||||||
return artName; |
|
||||||
} |
|
||||||
|
|
||||||
public void setArtName(String artName) { |
|
||||||
this.artName = artName; |
|
||||||
} |
|
||||||
|
|
||||||
public List<Book> getPublications() { |
|
||||||
return publications; |
|
||||||
} |
|
||||||
|
|
||||||
public void setPublications(List<Book> publications) { |
|
||||||
this.publications = publications; |
|
||||||
} |
|
||||||
|
|
||||||
}*/ |
|
@ -1,68 +0,0 @@ |
|||||||
package com.unimib.disco.mivan.multibook.model; |
|
||||||
|
|
||||||
import java.util.List; |
|
||||||
|
|
||||||
import javax.persistence.Column; |
|
||||||
import javax.persistence.Entity; |
|
||||||
import javax.persistence.Id; |
|
||||||
import javax.persistence.ManyToMany; |
|
||||||
import javax.persistence.OneToOne; |
|
||||||
|
|
||||||
@Entity |
|
||||||
public class Book { |
|
||||||
|
|
||||||
@Id |
|
||||||
@Column(name = "isbn", nullable=false) |
|
||||||
private int isbn; |
|
||||||
|
|
||||||
@Column(name = "titolo", nullable=false) |
|
||||||
private String titolo; |
|
||||||
|
|
||||||
@OneToOne |
|
||||||
private Book prequel; |
|
||||||
/* |
|
||||||
@ManyToMany |
|
||||||
List<Author> authors; |
|
||||||
*/ |
|
||||||
|
|
||||||
public Book() { |
|
||||||
// TODO Auto-generated constructor stub
|
|
||||||
} |
|
||||||
|
|
||||||
public Book(int isbn, String titolo, Book prequel/*, List<Author> authors*/) { |
|
||||||
super(); |
|
||||||
this.isbn = isbn; |
|
||||||
this.titolo = titolo; |
|
||||||
this.prequel = prequel; |
|
||||||
//this.authors = authors;
|
|
||||||
} |
|
||||||
|
|
||||||
public int getIsbn() { |
|
||||||
return isbn; |
|
||||||
} |
|
||||||
|
|
||||||
public void setIsbn(int isbn) { |
|
||||||
this.isbn = isbn; |
|
||||||
} |
|
||||||
|
|
||||||
public String getTitolo() { |
|
||||||
return titolo; |
|
||||||
} |
|
||||||
|
|
||||||
public void setTitolo(String titolo) { |
|
||||||
this.titolo = titolo; |
|
||||||
} |
|
||||||
|
|
||||||
public Book getPrequel() { |
|
||||||
return prequel; |
|
||||||
} |
|
||||||
|
|
||||||
public void setPrequel(Book prequel) { |
|
||||||
this.prequel = prequel; |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
} |
|
@ -1,65 +0,0 @@ |
|||||||
package com.unimib.disco.mivan.multibook.model; |
|
||||||
|
|
||||||
import javax.persistence.Column; |
|
||||||
import javax.persistence.GeneratedValue; |
|
||||||
import javax.persistence.GenerationType; |
|
||||||
import javax.persistence.Id; |
|
||||||
import javax.persistence.ManyToOne; |
|
||||||
|
|
||||||
public class Item{ |
|
||||||
|
|
||||||
|
|
||||||
@Id |
|
||||||
@Column(name = "id", nullable=false) |
|
||||||
@GeneratedValue(strategy = GenerationType.AUTO) |
|
||||||
private int id; |
|
||||||
|
|
||||||
@ManyToOne |
|
||||||
private Location location; |
|
||||||
|
|
||||||
@ManyToOne |
|
||||||
private Book libro; |
|
||||||
|
|
||||||
|
|
||||||
public Item() { |
|
||||||
// TODO Auto-generated constructor stub
|
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
public Item(Book libro,Location location) { |
|
||||||
this.libro = libro; |
|
||||||
this.location=location; |
|
||||||
// TODO Auto-generated constructor stub
|
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
public int getId() { |
|
||||||
return id; |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
public void setId(int id) { |
|
||||||
this.id = id; |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
public Location getLocation() { |
|
||||||
return location; |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
public void setLocation(Location location) { |
|
||||||
this.location = location; |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
public Book getLibro() { |
|
||||||
return libro; |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
public void setLibro(Book libro) { |
|
||||||
this.libro = libro; |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
@ -1,101 +0,0 @@ |
|||||||
package com.unimib.disco.mivan.multibook.model; |
|
||||||
|
|
||||||
import java.util.Date; |
|
||||||
|
|
||||||
import javax.persistence.Column; |
|
||||||
import javax.persistence.GeneratedValue; |
|
||||||
import javax.persistence.GenerationType; |
|
||||||
import javax.persistence.Id; |
|
||||||
import javax.persistence.ManyToOne; |
|
||||||
import javax.persistence.Temporal; |
|
||||||
import javax.persistence.TemporalType; |
|
||||||
|
|
||||||
public class Loan { |
|
||||||
|
|
||||||
@Id |
|
||||||
@Column(name = "id", nullable=false) |
|
||||||
@GeneratedValue(strategy = GenerationType.AUTO) |
|
||||||
private int id; |
|
||||||
|
|
||||||
|
|
||||||
@ManyToOne |
|
||||||
private Item item; |
|
||||||
|
|
||||||
@ManyToOne |
|
||||||
private Staff staff; |
|
||||||
|
|
||||||
@ManyToOne |
|
||||||
private User user; |
|
||||||
|
|
||||||
@Column(name = "start") |
|
||||||
@Temporal(TemporalType.TIMESTAMP) |
|
||||||
Date start; |
|
||||||
|
|
||||||
@Column(name = "end") |
|
||||||
@Temporal(TemporalType.TIMESTAMP) |
|
||||||
Date end; |
|
||||||
|
|
||||||
public Loan() { |
|
||||||
// TODO Auto-generated constructor stub
|
|
||||||
} |
|
||||||
|
|
||||||
public Loan(int id, Item item, Staff staff, User user, Date start, Date end) { |
|
||||||
super(); |
|
||||||
this.item = item; |
|
||||||
this.staff = staff; |
|
||||||
this.user = user; |
|
||||||
this.start = start; |
|
||||||
this.end = end; |
|
||||||
} |
|
||||||
|
|
||||||
public int getId() { |
|
||||||
return id; |
|
||||||
} |
|
||||||
|
|
||||||
public void setId(int id) { |
|
||||||
this.id = id; |
|
||||||
} |
|
||||||
|
|
||||||
public Item getItem() { |
|
||||||
return item; |
|
||||||
} |
|
||||||
|
|
||||||
public void setItem(Item item) { |
|
||||||
this.item = item; |
|
||||||
} |
|
||||||
|
|
||||||
public Staff getStaff() { |
|
||||||
return staff; |
|
||||||
} |
|
||||||
|
|
||||||
public void setStaff(Staff staff) { |
|
||||||
this.staff = staff; |
|
||||||
} |
|
||||||
|
|
||||||
public User getUser() { |
|
||||||
return user; |
|
||||||
} |
|
||||||
|
|
||||||
public void setUser(User user) { |
|
||||||
this.user = user; |
|
||||||
} |
|
||||||
|
|
||||||
public Date getStart() { |
|
||||||
return start; |
|
||||||
} |
|
||||||
|
|
||||||
public void setStart(Date start) { |
|
||||||
this.start = start; |
|
||||||
} |
|
||||||
|
|
||||||
public Date getEnd() { |
|
||||||
return end; |
|
||||||
} |
|
||||||
|
|
||||||
public void setEnd(Date end) { |
|
||||||
this.end = end; |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
} |
|
@ -1,36 +0,0 @@ |
|||||||
package com.unimib.disco.mivan.multibook.model; |
|
||||||
|
|
||||||
import javax.persistence.Column; |
|
||||||
import javax.persistence.Entity; |
|
||||||
import javax.persistence.GeneratedValue; |
|
||||||
import javax.persistence.GenerationType; |
|
||||||
import javax.persistence.Id; |
|
||||||
|
|
||||||
@Entity |
|
||||||
public class Location { |
|
||||||
|
|
||||||
@Id |
|
||||||
@Column(name = "id", nullable=false) |
|
||||||
@GeneratedValue(strategy = GenerationType.AUTO) |
|
||||||
private long id; |
|
||||||
|
|
||||||
@Column(name = "name", nullable=false) |
|
||||||
private String name; |
|
||||||
|
|
||||||
@Column(name = "address", nullable=false) |
|
||||||
private String address; |
|
||||||
|
|
||||||
@Column(name = "city", nullable=false) |
|
||||||
private String city; |
|
||||||
|
|
||||||
public Location() { |
|
||||||
// TODO Auto-generated constructor stub
|
|
||||||
} |
|
||||||
|
|
||||||
public Location(String name, String address, String city) { |
|
||||||
super(); |
|
||||||
this.name = name; |
|
||||||
this.address = address; |
|
||||||
this.city = city; |
|
||||||
} |
|
||||||
} |
|
@ -1,26 +0,0 @@ |
|||||||
package com.unimib.disco.mivan.multibook.model; |
|
||||||
|
|
||||||
import javax.persistence.Entity; |
|
||||||
import javax.persistence.FetchType; |
|
||||||
import javax.persistence.ManyToOne; |
|
||||||
|
|
||||||
@Entity |
|
||||||
public class Staff extends User { |
|
||||||
|
|
||||||
@ManyToOne(fetch = FetchType.LAZY) |
|
||||||
private Location library; |
|
||||||
|
|
||||||
|
|
||||||
public Staff() { |
|
||||||
// TODO Auto-generated constructor stub
|
|
||||||
} |
|
||||||
|
|
||||||
public Staff(String firstName, String lastName, String city, String username, String email, |
|
||||||
String password, Location library) { |
|
||||||
super(firstName, lastName, city, username, email, password); |
|
||||||
this.library=library; |
|
||||||
|
|
||||||
// TODO Auto-generated constructor stub
|
|
||||||
} |
|
||||||
|
|
||||||
} |
|
@ -1,67 +0,0 @@ |
|||||||
package com.unimib.disco.mivan.multibook.model; |
|
||||||
|
|
||||||
|
|
||||||
import javax.persistence.*; |
|
||||||
|
|
||||||
@Entity |
|
||||||
public class User extends Person { |
|
||||||
|
|
||||||
|
|
||||||
@Column(name = "username", nullable=false,unique=true) |
|
||||||
private String username; |
|
||||||
|
|
||||||
@Column(name = "email", nullable=false,unique=true) |
|
||||||
private String email; |
|
||||||
|
|
||||||
@Column(name = "password", nullable=false) |
|
||||||
private String password; |
|
||||||
|
|
||||||
|
|
||||||
public User() { |
|
||||||
super(); |
|
||||||
// TODO Auto-generated constructor stub
|
|
||||||
} |
|
||||||
|
|
||||||
public User(String firstName, String lastName, String city, String username, String email, String password) { |
|
||||||
super(firstName, lastName, city); |
|
||||||
this.username = username; |
|
||||||
this.email = email; |
|
||||||
this.password = password; |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
public String getUsername() { |
|
||||||
return username; |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
public void setUsername(String username) { |
|
||||||
this.username = username; |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
public String getEmail() { |
|
||||||
return email; |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
public void setEmail(String email) { |
|
||||||
this.email = email; |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
public String getPassword() { |
|
||||||
return password; |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
public void setPassword(String password) { |
|
||||||
this.password = password; |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
} |
|
@ -1,17 +0,0 @@ |
|||||||
package com.unimib.disco.mivan.multibook.repository; |
|
||||||
|
|
||||||
import java.util.List; |
|
||||||
|
|
||||||
import org.springframework.data.repository.CrudRepository; |
|
||||||
|
|
||||||
import com.unimib.disco.mivan.multibook.model.Person; |
|
||||||
|
|
||||||
public interface PersonRepository <T extends Person> extends CrudRepository<T, Long> { |
|
||||||
|
|
||||||
List<T> findByFirstNameAllIgnoreCase(String firstName); |
|
||||||
|
|
||||||
List<T> findByLastNameAllIgnoreCase(String lastName); |
|
||||||
|
|
||||||
List<T> findByirstNameAndLastNameAllIgnoreCase(String firstName, String lastName); |
|
||||||
|
|
||||||
} |
|
@ -1,19 +0,0 @@ |
|||||||
package com.unimib.disco.mivan.multibook.repository; |
|
||||||
|
|
||||||
import com.unimib.disco.mivan.multibook.model.User; |
|
||||||
|
|
||||||
import java.util.Optional; |
|
||||||
|
|
||||||
|
|
||||||
public interface UserRepository extends PersonRepository<User> { |
|
||||||
|
|
||||||
|
|
||||||
public Optional<User> findById(Long id); |
|
||||||
|
|
||||||
public User findByEmail(String email); |
|
||||||
|
|
||||||
public User findByUsername(String username); |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
} |
|
@ -1,37 +0,0 @@ |
|||||||
package com.unimib.disco.mivan.multibook.service; |
|
||||||
|
|
||||||
import java.util.List; |
|
||||||
import java.util.Optional; |
|
||||||
|
|
||||||
import com.unimib.disco.mivan.multibook.model.User; |
|
||||||
import com.unimib.disco.mivan.multibook.repository.UserRepository; |
|
||||||
|
|
||||||
public class UserService { |
|
||||||
|
|
||||||
private UserRepository userRepository; |
|
||||||
|
|
||||||
public UserService(UserRepository userRepository) { |
|
||||||
this.userRepository = userRepository; |
|
||||||
} |
|
||||||
/* |
|
||||||
public List<User> getClients(){ |
|
||||||
return Lists.newArrayList(userRepository.findAll()); |
|
||||||
}*/ |
|
||||||
|
|
||||||
public Optional<User> getClient(Long id) { |
|
||||||
return userRepository.findById(id); |
|
||||||
} |
|
||||||
|
|
||||||
public List<User> getClientsByNameAndSurname(String name, String surname) { |
|
||||||
return userRepository.findByirstNameAndLastNameAllIgnoreCase(name, surname); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
public void deleteClient(User client) { |
|
||||||
userRepository.delete(client); |
|
||||||
} |
|
||||||
|
|
||||||
public User insertOrUpdateClient(User client) { |
|
||||||
return userRepository.save(client); |
|
||||||
} |
|
||||||
} |
|
@ -1,23 +0,0 @@ |
|||||||
|
|
||||||
|
|
||||||
spring.datasource.url=jdbc:h2:./database; |
|
||||||
spring.datasource.driverClassName=org.h2.Driver |
|
||||||
spring.datasource.username=librarymenagment |
|
||||||
spring.datasource.password=password123! |
|
||||||
spring.datasource.initialization-mode=always |
|
||||||
|
|
||||||
spring.h2.console.enabled=true |
|
||||||
spring.h2.console.path=/h2 |
|
||||||
|
|
||||||
|
|
||||||
spring.jpa.show-sql=true |
|
||||||
spring.jpa.hibernate.ddl-auto=update |
|
||||||
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.H2Dialect |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Used for initialization of db. |
|
||||||
# !!! Remove comment for initialize db first time. !!! |
|
||||||
# spring.datasource.initialization-mode=always |
|
||||||
|
|
@ -1,13 +0,0 @@ |
|||||||
package com.unimib.disco.mivan.multibook; |
|
||||||
|
|
||||||
import org.junit.jupiter.api.Test; |
|
||||||
import org.springframework.boot.test.context.SpringBootTest; |
|
||||||
|
|
||||||
@SpringBootTest |
|
||||||
class MultibookApplicationTests { |
|
||||||
|
|
||||||
@Test |
|
||||||
void contextLoads() { |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
@ -1,33 +0,0 @@ |
|||||||
package com.unimib.disco.mivan.multibook; |
|
||||||
|
|
||||||
|
|
||||||
import org.junit.jupiter.api.Test; |
|
||||||
import org.mockito.Mock; |
|
||||||
import org.springframework.boot.test.context.SpringBootTest; |
|
||||||
|
|
||||||
import com.unimib.disco.mivan.multibook.model.User; |
|
||||||
import com.unimib.disco.mivan.multibook.service.UserService; |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@SpringBootTest |
|
||||||
public class UserTests { |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//private UserRepository userRepository = new UserRepository();
|
|
||||||
private UserService userRepository; |
|
||||||
|
|
||||||
@Test |
|
||||||
void userCreation() { |
|
||||||
|
|
||||||
User asd = new User("Ivan", "Donati", "Novara", "territory", "ciao.iva@gmail.com", "sonounapassword"); |
|
||||||
|
|
||||||
userRepository.insertOrUpdateClient(asd); |
|
||||||
|
|
||||||
//userRepository.insertOrUpdateClient("Ivan", "Donati", "Novara", "territory", "ciao.iva@gmail.com", "sonounapassword");
|
|
||||||
|
|
||||||
|
|
||||||
} |
|
||||||
|
|
||||||
} |
|
Loading…
Reference in new issue