Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .idea/compiler.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

20 changes: 20 additions & 0 deletions .idea/jarRepositories.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

38 changes: 38 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,44 @@
<groupId>com.zipcode.lab</groupId>
<artifactId>jpaentity</artifactId>
<version>1.0-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>

<dependencies>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.12.3</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.23</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>RELEASE</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.5.3.Final</version>
</dependency>

</dependencies>
</project>
74 changes: 74 additions & 0 deletions src/main/java/entities/Album.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
package entities;

import javax.persistence.*;

@Entity
@Table(name = "Album")
public class Album {

@Id
private Long id;
private String title;
private String genre;
private String artistName;

@ManyToOne(fetch = FetchType.LAZY, optional = false)
@JoinColumn(name = "name", nullable = false)
private Artist artist;

public Album(){}

public Album(Long id, String title, String genre, String artistName, Artist artist){
this.id = id;
this.title = title;
this.genre = genre;
this.artistName = artistName;
this.artist = artist;
}

public Long getId() {
return id;
}

public void setId(Long id) {
this.id = id;
}

public String getTitle() {
return title;
}

public void setTitle(String title) {
this.title = title;
}

public String getGenre() {
return genre;
}

public void setGenre(String genre) {
this.genre = genre;
}

public String getArtistName() {
return artistName;
}

public void setArtistName(String artistName) {
this.artistName = artistName;
}

public Artist getArtist() { return artist; }

public void setArtist(Artist artist) { this.artist = artist; }

@Override
public String toString() {
return "Painting {" +
"ID = " + id +
", Title = " + title +
", Medium = " + genre +
", Artist = " + artistName +
"}";
}
}
71 changes: 71 additions & 0 deletions src/main/java/entities/Artist.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
package entities;

import javax.persistence.*;
import java.util.HashSet;
import java.util.Set;

@Entity
@Table(name = "Artist")
public class Artist {

@Id
private Long id;
private String name;
private String instrument;
private Integer age;

@OneToMany(mappedBy = "artist", cascade = CascadeType.ALL,
fetch = FetchType.LAZY, orphanRemoval = true)
private Set<Album> album = new HashSet<>();

public Artist() {}

public Artist(Long id, String name, String instrument, Integer age) {
this.id = id;
this.name = name;
this.instrument = instrument;
this.age = age;
}

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 String getInstrument() {
return instrument;
}

public void setInstrument(String instrument) {
this.instrument = instrument;
}

public Integer getAge() {
return age;
}

public void setAge(Integer age) {
this.age = age;
}

@Override
public String toString() {
return "Artist {" +
"ID = " + id +
", Name = " + name +
", Birth Place = " + instrument +
", Birth Year = " + age +
"}";
}
}
Empty file.
47 changes: 47 additions & 0 deletions src/main/java/main/NewMainApp.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
package main;

import entities.Artist;
import entities.Album;
import services.ArtistService;
import services.AlbumService;
import java.util.ArrayList;
import java.util.List;

public class NewMainApp {

public static void main(String[] args) {

ArtistService artistService = new ArtistService();
AlbumService albumService = new AlbumService();
List<Artist> artistList = new ArrayList<>();
List<Album> albumList = new ArrayList<>();

Artist artist1 = new Artist(1L, "Dippity", "Triangle", 20);
Artist artist2 = new Artist(2L, "Pandotopanzanite", "Vocals", 45);
artistList.add(artist1);
artistList.add(artist2);

Album album1 = new Album(1L, "All Them Dips", "Hip Hop", "Dippity", artist1);
Album album2 = new Album(2L, "Gems", "Rock", "Pandotopanzanite", artist2);
albumList.add(album1);
albumList.add(album2);


//CREATE
artistService.createMultiple(artistList);
albumService.createMultiple(albumList);


//READ
Artist art1 = artistService.findById(1L);
Artist art2 = artistService.findById(2L);
System.out.println(art1.toString());
System.out.println(art2.toString());

Album alb1 = albumService.findById(1L);
Album alb2 = albumService.findById(2L);
System.out.println(alb1.toString());
System.out.println(alb2.toString());

}
}
57 changes: 57 additions & 0 deletions src/main/java/services/AlbumService.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
package services;

import entities.Album;
import java.util.List;

public class AlbumService implements Service {


public void create(Album album) {
entityManager.getTransaction().begin();
entityManager.persist(album);
entityManager.getTransaction().commit();
}

public void createMultiple(List<Album> list) {
entityManager.getTransaction().begin();
list.stream()
.forEach(album -> entityManager.persist(album));
entityManager.getTransaction().commit();
}

public List<Album> findAll() {
return entityManager.createQuery("SELECT p FROM Painting p", Album.class).getResultList();
}

public Album findById(Long id) {
Album album = entityManager.find(Album.class, id);
return album;
}

public void update(Long id, Album newAlbumData) {
entityManager.getTransaction().begin();
Album album = entityManager.find(Album.class, id);

album.setId(newAlbumData.getId());
album.setTitle(newAlbumData.getTitle());
album.setGenre(newAlbumData.getGenre());
album.setArtistName(newAlbumData.getArtistName());

entityManager.getTransaction().commit();
}

public void delete(Long id) {
Album album = entityManager.find(Album.class, id);
entityManager.getTransaction().begin();
entityManager.remove(album);
entityManager.getTransaction().commit();
System.out.printf("%s has been deleted", album.toString());
}

public void delete(Album album) {
entityManager.getTransaction().begin();
entityManager.remove(album);
entityManager.getTransaction().commit();
System.out.printf("%s has been deleted", album.toString());
}
}
57 changes: 57 additions & 0 deletions src/main/java/services/ArtistService.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
package services;

import entities.Artist;
import java.util.List;

public class ArtistService implements Service {


public void create(Artist artist) {
entityManager.getTransaction().begin();
entityManager.persist(artist);
entityManager.getTransaction().commit();
}

public void createMultiple(List<Artist> list) {
entityManager.getTransaction().begin();
list.stream()
.forEach(artist -> entityManager.persist(artist));
entityManager.getTransaction().commit();
}

public List<Artist> findAll() {
return entityManager.createQuery("SELECT a FROM Artist a", Artist.class).getResultList();
}

public Artist findById(Long id) {
Artist artist = entityManager.find(Artist.class, id);
return artist;
}

public void update(Long id, Artist newArtistData) {
entityManager.getTransaction().begin();
Artist artist = entityManager.find(Artist.class, id);

artist.setId(newArtistData.getId());
artist.setName(newArtistData.getName());
artist.setInstrument(newArtistData.getInstrument());
artist.setAge(newArtistData.getAge());

entityManager.getTransaction().commit();
}

public void delete(Long id) {
Artist artist = entityManager.find(Artist.class, id);
entityManager.getTransaction().begin();
entityManager.remove(artist);
entityManager.getTransaction().commit();
System.out.printf("%s has been deleted", artist.toString());
}

public void delete(Artist artist) {
entityManager.getTransaction().begin();
entityManager.remove(artist);
entityManager.getTransaction().commit();
System.out.printf("%s has been deleted", artist.toString());
}
}
Empty file.
Loading