Accès aux données via JPA

Programming, Data Management · course

Voir tous les documents en gestion et économie

Accès aux données

via JPA

Frédéric Claux - 2019

Plan

• Données et état des données dans JPA

• Insertion de données

• Suppression de données

• Mise à jour de données

• Requêtage

Etat des données en JPA

Publicité

https://www.baeldung.com/hibernate-save-persist-update-merge-saveorupdate

Insertion de données

Suppliers s = new Suppliers();

// Ne pas specifier de clé primaire si elle est autogénérée

// s.setId(id);

s.setFirstName("Jean");

s.setLastName("Dupont");

m_EM.getTransaction().begin();

m_EM.persist(s);

m_EM.getTransaction().commit();

Publicité

Suppression de données

m_EM.getTransaction().begin();

m_EM.remove(s);

m_EM.getTransaction().commit();

Mise à jour de données

Suppliers s = m_EM.find(Suppliers.class, 2);

m_EM.getTransaction().begin();

s.setFirstName("Jane");

m_EM.merge(s);

m_EM.flush();

Publicité

m_EM.getTransaction().commit();

Requêtage

• JPQL

• Pour: simple, très proche du SQL

• Contre: typage fort contrôlé par l’IDE à l’intérieur même des chaines de

caractères, mais seulement dans les @NamedQuery

• CriteriaQuery

• Pour: fortement typé

• Contre: très verbeux

Requêtage – exemple

Publicité

• JPQL

• SELECT c FROM Country c WHERE population > :p

• CriteriaQuery

• CriteriaQuery<Country> q = cb.createQuery(Country.class);

Root<Country> c = q.from(Country.class);

ParameterExpression<Integer> p = cb.parameter(Integer.class);

q.select(c).where(cb.gt(c.get(Country_.population), p));

• S’exercer durant les travaux pratiques