 
                
Hibernate umožňuje snadné mapování tříd na databázové tabulky pomocí JPA anotací:
@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;
}
Soubor persistence.xml definuje konfiguraci JPA:
<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>
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
User u = new User();
u.setUsername("petr");
em.persist(u);
em.getTransaction().commit();
em.close();
U REST služeb je klíčové správně spravovat EntityManager a transakce:
try-catch-finallyFirst-level cache je aktivní automaticky pre session. Second-level cache (např. Ehcache) je volitelná a zvyšuje výkon ve větších aplikacích.
Doporučení:
fetch = EAGER – způsobuje pomalé dotazyJOIN FETCH při potřebě vícero entitVše se naučíte v kurzu Java REST služby s Hibernate, kde si vytvoříte REST API, připojíte ho na databázi a naučíte se správu transakcí i optimalizaci výkonu.
Viac informacií preberáme na kurze:
