models, repos, test (#1225)

* models, repos, test

* update models and test

* updated test location

* update test location
This commit is contained in:
lor6
2017-02-26 21:30:47 +02:00
committed by KevinGilmore
parent 7f20437cb0
commit 1a067bc945
9 changed files with 394 additions and 0 deletions
@@ -0,0 +1,53 @@
package com.baeldung.models;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToOne;
@Entity
public class Address {
@Id
@GeneratedValue
private long id;
@Column(nullable = false)
private String location;
@OneToOne(mappedBy = "address")
private Library library;
public Address() {
}
public Address(String location) {
super();
this.location = location;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
public Library getLibrary() {
return library;
}
public void setLibrary(Library library) {
this.library = library;
}
}
@@ -0,0 +1,59 @@
package com.baeldung.models;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
@Entity
public class Author {
@Id
@GeneratedValue
private long id;
@Column(nullable = false)
private String name;
@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(name = "book_author", joinColumns = @JoinColumn(name = "book_id", referencedColumnName = "id"), inverseJoinColumns = @JoinColumn(name = "author_id", referencedColumnName = "id"))
private List<Book> books;
public Author() {
}
public Author(String name) {
super();
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public List<Book> getBooks() {
return books;
}
public void setBooks(List<Book> books) {
this.books = books;
}
}
@@ -0,0 +1,70 @@
package com.baeldung.models;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
@Entity
public class Book {
@Id
@GeneratedValue
private long id;
@Column(nullable = false)
private String title;
@ManyToOne
@JoinColumn(name = "library_id")
private Library library;
@ManyToMany(mappedBy = "books")
private List<Author> authors;
public Book() {
}
public Book(String title) {
super();
this.title = title;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public Library getLibrary() {
return library;
}
public void setLibrary(Library library) {
this.library = library;
}
public List<Author> getAuthors() {
return authors;
}
public void setAuthors(List<Author> authors) {
this.authors = authors;
}
}
@@ -0,0 +1,73 @@
package com.baeldung.models;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import org.springframework.data.rest.core.annotation.RestResource;
@Entity
public class Library {
@Id
@GeneratedValue
private long id;
@Column
private String name;
@OneToOne
@JoinColumn(name = "address_id")
@RestResource(path = "libraryAddress")
private Address address;
@OneToMany(mappedBy = "library")
private List<Book> books;
public Library() {
}
public Library(String name) {
super();
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
public List<Book> getBooks() {
return books;
}
public void setBooks(List<Book> books) {
this.books = books;
}
}
@@ -0,0 +1,9 @@
package com.baeldung.repositories;
import org.springframework.data.repository.CrudRepository;
import com.baeldung.models.Address;
public interface AddressRepository extends CrudRepository<Address, Long> {
}
@@ -0,0 +1,9 @@
package com.baeldung.repositories;
import org.springframework.data.repository.CrudRepository;
import com.baeldung.models.Author;
public interface AuthorRepository extends CrudRepository<Author, Long> {
}
@@ -0,0 +1,9 @@
package com.baeldung.repositories;
import org.springframework.data.repository.CrudRepository;
import com.baeldung.models.Book;
public interface BookRepository extends CrudRepository<Book, Long> {
}
@@ -0,0 +1,9 @@
package com.baeldung.repositories;
import org.springframework.data.repository.CrudRepository;
import com.baeldung.models.Library;
public interface LibraryRepository extends CrudRepository<Library, Long> {
}