Maison >Java >javaDidacticiel >Plongez dans les concepts fondamentaux de Java JPA : entités, mappages et requêtes

Plongez dans les concepts fondamentaux de Java JPA : entités, mappages et requêtes

王林
王林avant
2024-02-19 23:30:381147parcourir

深入探索 Java JPA 的核心概念:实体、映射和查询

Entité

L'éditeur PHP Apple vous amènera à explorer en profondeur les concepts de base de Java JPA dans cet article : entités, mappage et requêtes. À mesure que la complexité des applications modernes augmente, la compréhension de JPA devient essentielle. Cet article vous aidera à comprendre les concepts clés de JPA afin que vous puissiez mieux les appliquer à des projets réels.

@Entity
public class Person {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

private String name;

private int age;

// 省略 getter 和 setter 方法
}

Carte

Le mappage est le mécanisme utilisé par JPA pour mapper les propriétés d'une classe d'entité aux champs de la base de données. JPA fournit de nombreux types de mappages, notamment :

  • Mappage un-à-un : Un attribut dans une classe d'entité correspond à une colonne dans la table de la base de données.
  • Mappage un-à-plusieurs : un attribut dans une classe d'entité correspond à plusieurs colonnes dans la table de la base de données.
  • Mappage plusieurs-à-un : plusieurs attributs d'une classe d'entité correspondent à une colonne de la table de la base de données.
  • Mappage plusieurs-à-plusieurs : plusieurs attributs dans une classe d'entité correspondent à plusieurs colonnes dans la table de base de données.

Le mappage peut également spécifier le type d'attribut, sa longueur, s'il peut être vide et d'autres informations.

@Entity
public class Person {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@Column(length = 50, nullable = false)
private String name;

@Column(nullable = false)
private int age;

// 省略 getter 和 setter 方法
}

Requête

JPA fournit une variété de mécanismes de requête, notamment :

  • JPQL (Java Persistence Query Language) : un langage de requête similaire à sql qui peut être utilisé pour interroger des objets d'entité.
  • Criteria api : Une API de requête orientée objet qui peut être utilisée pour interroger des objets d'entité.
  • Requête native : utilisez SQL natif pour interroger la base de données.
// JPQL 查询
List<Person> persons = entityManager.createQuery("SELECT p FROM Person p WHERE p.age > 18", Person.class)
.getResultList();

// Criteria API 查询
CriteriaBuilder cb = entityManager.getCriteriaBuilder();
CriteriaQuery<Person> cq = cb.createQuery(Person.class);
Root<Person> root = cq.from(Person.class);
cq.select(root).where(cb.gt(root.get("age"), 18));
List<Person> persons = entityManager.createQuery(cq).getResultList();

// 本机查询
List<Person> persons = entityManager.createNativeQuery("SELECT * FROM Person WHERE age > 18", Person.class)
.getResultList();

Résumé

JPA est un framework de persistance puissant qui fournit un accès unifié aux bases de données relationnelles. En utilisant JPA, nous pouvons facilement conserver des objets Java dans la base de données et interroger des objets d'entité à l'aide de JPQL, de l'API Criteria ou de requêtes natives.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer