commit
ec7283cb81
|
@ -0,0 +1,114 @@
|
|||
package com.baeldung.hibernate.operations;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import javax.persistence.EntityManager;
|
||||
import javax.persistence.EntityManagerFactory;
|
||||
import javax.persistence.Persistence;
|
||||
|
||||
import com.baeldung.hibernate.pojo.Movie;
|
||||
|
||||
/**
|
||||
*
|
||||
*Class to illustrate the usage of EntityManager API.
|
||||
*/
|
||||
public class HibernateOperations {
|
||||
|
||||
private static final EntityManagerFactory emf;
|
||||
|
||||
/**
|
||||
* Static block for creating EntityManagerFactory. The Persistence class looks for META-INF/persistence.xml in the classpath.
|
||||
*/
|
||||
static {
|
||||
emf = Persistence.createEntityManagerFactory("com.baeldung.movie_catalog");
|
||||
}
|
||||
|
||||
/**
|
||||
* Static method returning EntityManager.
|
||||
* @return EntityManager
|
||||
*/
|
||||
public static EntityManager getEntityManager() {
|
||||
return emf.createEntityManager();
|
||||
}
|
||||
|
||||
/**
|
||||
* Saves the movie entity into the database. Here we are using Application Managed EntityManager, hence should handle transactions by ourselves.
|
||||
*/
|
||||
public void saveMovie() {
|
||||
EntityManager em = HibernateOperations.getEntityManager();
|
||||
em.getTransaction()
|
||||
.begin();
|
||||
Movie movie = new Movie();
|
||||
movie.setId(1L);
|
||||
movie.setMovieName("The Godfather");
|
||||
movie.setReleaseYear(1972);
|
||||
movie.setLanguage("English");
|
||||
em.persist(movie);
|
||||
em.getTransaction()
|
||||
.commit();
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to illustrate the querying support in EntityManager when the result is a single object.
|
||||
* @return Movie
|
||||
*/
|
||||
public Movie queryForMovieById() {
|
||||
EntityManager em = HibernateOperations.getEntityManager();
|
||||
Movie movie = (Movie) em.createQuery("SELECT movie from Movie movie where movie.id = ?1")
|
||||
.setParameter(1, new Long(1L))
|
||||
.getSingleResult();
|
||||
return movie;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to illustrate the querying support in EntityManager when the result is a list.
|
||||
* @return
|
||||
*/
|
||||
public List<?> queryForMovies() {
|
||||
EntityManager em = HibernateOperations.getEntityManager();
|
||||
List<?> movies = em.createQuery("SELECT movie from Movie movie where movie.language = ?1")
|
||||
.setParameter(1, "English")
|
||||
.getResultList();
|
||||
return movies;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to illustrate the usage of find() method.
|
||||
* @param movieId
|
||||
* @return Movie
|
||||
*/
|
||||
public Movie getMovie(Long movieId) {
|
||||
EntityManager em = HibernateOperations.getEntityManager();
|
||||
Movie movie = em.find(Movie.class, new Long(movieId));
|
||||
return movie;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to illustrate the usage of merge() function.
|
||||
*/
|
||||
public void mergeMovie() {
|
||||
EntityManager em = HibernateOperations.getEntityManager();
|
||||
Movie movie = getMovie(1L);
|
||||
em.detach(movie);
|
||||
movie.setLanguage("Italian");
|
||||
em.getTransaction()
|
||||
.begin();
|
||||
em.merge(movie);
|
||||
em.getTransaction()
|
||||
.commit();
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to illustrate the usage of remove() function.
|
||||
*/
|
||||
public void removeMovie() {
|
||||
EntityManager em = HibernateOperations.getEntityManager();
|
||||
em.getTransaction()
|
||||
.begin();
|
||||
Movie movie = em.find(Movie.class, new Long(1L));
|
||||
em.remove(movie);
|
||||
em.getTransaction()
|
||||
.commit();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,52 @@
|
|||
package com.baeldung.hibernate.pojo;
|
||||
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.Id;
|
||||
import javax.persistence.Table;
|
||||
|
||||
@Entity
|
||||
@Table(name = "MOVIE")
|
||||
public class Movie {
|
||||
|
||||
@Id
|
||||
private Long id;
|
||||
|
||||
private String movieName;
|
||||
|
||||
private Integer releaseYear;
|
||||
|
||||
private String language;
|
||||
|
||||
public String getMovieName() {
|
||||
return movieName;
|
||||
}
|
||||
|
||||
public void setMovieName(String movieName) {
|
||||
this.movieName = movieName;
|
||||
}
|
||||
|
||||
public Integer getReleaseYear() {
|
||||
return releaseYear;
|
||||
}
|
||||
|
||||
public void setReleaseYear(Integer releaseYear) {
|
||||
this.releaseYear = releaseYear;
|
||||
}
|
||||
|
||||
public String getLanguage() {
|
||||
return language;
|
||||
}
|
||||
|
||||
public void setLanguage(String language) {
|
||||
this.language = language;
|
||||
}
|
||||
|
||||
public Long getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(Long id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<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="com.baeldung.movie_catalog">
|
||||
<description>Hibernate EntityManager Demo</description>
|
||||
<class>com.baeldung.hibernate.pojo.Movie</class>
|
||||
<exclude-unlisted-classes>true</exclude-unlisted-classes>
|
||||
<properties>
|
||||
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect"/>
|
||||
<property name="hibernate.hbm2ddl.auto" value="update"/>
|
||||
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
|
||||
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://127.0.0.1:3306/moviecatalog"/>
|
||||
<property name="javax.persistence.jdbc.user" value="root"/>
|
||||
<property name="javax.persistence.jdbc.password" value="root"/>
|
||||
</properties>
|
||||
</persistence-unit>
|
||||
</persistence>
|
Loading…
Reference in New Issue