Ako skombinovať Java REST a Hibernate: Od entity tried po CRUD metódy

1. Základné anotácie v Hibernate (Entity, Table, Column, Id, GeneratedValue)

Hibernate ako implementácia JPA umožňuje jednoduché mapovanie objektov na databázové tabuľky. Každá trieda reprezentuje entitu, ktorú anotujeme:

@Entity
@Table(name = "users")
public class User {
  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  private Long id;

  @Column(name = "username", nullable = false)
  private String username;

  @Column(name = "email")
  private String email;
}

@Entity označuje, že ide o JPA entitu. @Table špecifikuje tabuľku, @Column stĺpec, @Id primárny kľúč a @GeneratedValue spôsob generovania ID.

2. Konfigurácia persistence.xml a pripojenie k databáze

Konfiguračný súbor persistence.xml sa nachádza v META-INF adresári a definuje názov persistence jednotky, ovládač, URL databázy a používateľa:

<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence" version="2.1">
  <persistence-unit name="MyPU">
    <class>com.example.User</class>
    <properties>
      <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/testdb"/>
      <property name="javax.persistence.jdbc.user" value="root"/>
      <property name="javax.persistence.jdbc.password" value="1234"/>
      <property name="javax.persistence.jdbc.driver" value="com.mysql.cj.jdbc.Driver"/>
      <property name="hibernate.hbm2ddl.auto" value="update"/>
      <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL8Dialect"/>
    </properties>
  </persistence-unit>
</persistence>

3. CRUD operácie cez JPA metódy (persist, find, remove, merge)

Hibernate poskytuje základné CRUD operácie cez EntityManager:

User user = new User();
user.setUsername("jano");
user.setEmail("jano@example.com");

EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
em.persist(user);
em.getTransaction().commit();
em.close();

4. Manažment session a transakcií

Je dôležité nezabudnúť zatvárať EntityManager a ukončiť transakciu, inak dôjde k úniku zdrojov. V REST aplikáciách sa odporúča otvoriť spojenie len na čas spracovania požiadavky.

Best practices:

5. Ladenie výkonu a cache v Hibernate

Hibernate obsahuje dve úrovne cache:

Pre zvýšenie výkonu odporúčame:

Chcete sa naučiť, ako kombinovať Java REST a Hibernate v praxi?

Všetko si prakticky vyskúšate v kurze Java REST služby s Hibernate, kde vytvoríte REST API, napojíte ho na databázu pomocou JPA a naučíte sa optimalizovať výkon a bezpečne spravovať spojenia.

Ako začať programovať?

Úvod do programovania pre každého bez prechádzajúcich znalostí.

Stiahnite si náš ebook teraz výnimočne zdarma!!!

Viac informacií preberáme na kurze:

Kurz JAVAEEREST - Java REST - RESTful Web Services s Hibernate

Marián Knězek

 

Súvisiace články: