@PersistenceContext //контейнер отвечает за начало, принятие или откат транзакции.
EntityManager entityManager;
public void saveMovie() {
entityManager.getTransaction().begin();
Movie movie = new Movie();
movie.setId(1L);
movie.setMovieName("The Godfather");
movie.setReleaseYear(1972);
movie.setLanguage("English");
entityManager.persist(movie);
entityManager.getTransaction().commit();
}
public Movie getMovie(Long movieId) {
Movie movie = entityManager.find(Movie.class, new Long(movieId));
entityManager.detach(movie); // «отделённая» (detached). Отделённая сущность теряет связь с базой данных и изменения в ней в базу сами не попадают.
return movie;
}
EntityManagerFactory emf = Persistence.createEntityManagerFactory("com.example.movie_catalog");
public static EntityManager getEntityManager() {
return emf.createEntityManager();
}
<persistence-unit name="com.example.movie_catalog">
<description>Hibernate EntityManager Demo</description>
<class>com.example.hibernate.pojo.Movie</class>
<exclude-unlisted-classes>true</exclude-unlisted-classes>
<properties>
<property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver" /> <!-- DB Driver -->
<property name="javax.persistence.jdbc.url" value="jdbc:postgresql://localhost/dbName" /> <!-- BD Mane -->
<property name="javax.persistence.jdbc.user" value="postgres" /> <!-- DB User -->
<property name="javax.persistence.jdbc.password" value="12345" /> <!-- DB Password -->
<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect"/> <!-- DB Dialect -->
<property name="hibernate.hbm2ddl.auto" value="update" /> <!-- create / create-drop / update -->
<property name="hibernate.show_sql" value="true" /> <!-- Show SQL in console -->
<property name="hibernate.format_sql" value="true" /> <!-- Show SQL formatted -->
</properties>
</persistence-unit>