Rumah  >  Artikel  >  Java  >  Selami konsep teras Java JPA: entiti, pemetaan dan pertanyaan

Selami konsep teras Java JPA: entiti, pemetaan dan pertanyaan

王林
王林ke hadapan
2024-02-19 23:30:381141semak imbas

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

Entiti

Editor PHP Apple akan membawa anda meneroka secara mendalam konsep teras Java JPA dalam artikel ini: entiti, pemetaan dan pertanyaan. Apabila kerumitan aplikasi moden meningkat, pemahaman tentang JPA menjadi kritikal. Artikel ini akan membantu anda memahami konsep utama dalam JPA supaya anda boleh mengaplikasikannya dengan lebih baik pada projek sebenar.

@Entity
public class Person {

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

private String name;

private int age;

// 省略 getter 和 setter 方法
}

Peta

Pemetaan ialah mekanisme yang digunakan oleh JPA untuk memetakan sifat dalam kelas entiti kepada medan dalam pangkalan data. JPA menyediakan banyak jenis pemetaan, termasuk:

  • Pemetaan satu dengan satu: Atribut dalam kelas entiti sepadan dengan lajur dalam jadual pangkalan data.
  • Pemetaan satu-ke-banyak: Satu atribut dalam kelas entiti sepadan dengan berbilang lajur dalam jadual pangkalan data.
  • Pemetaan banyak-ke-satu: Berbilang atribut dalam kelas entiti sepadan dengan satu lajur dalam jadual pangkalan data.
  • Pemetaan banyak-ke-banyak: Berbilang atribut dalam kelas entiti sepadan dengan berbilang lajur dalam jadual pangkalan data.

Pemetaan juga boleh menentukan jenis atribut, panjang, sama ada ia dibenarkan kosong dan maklumat lain.

@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 方法
}

Pertanyaan

JPA menyediakan pelbagai mekanisme pertanyaan, termasuk:

  • JPQL (Bahasa Pertanyaan Kegigihan Java): Bahasa pertanyaan yang serupa dengan sql yang boleh digunakan untuk menanyakan objek entiti.
  • Kriteria api: API pertanyaan berorientasikan objek yang boleh digunakan untuk menanya objek entiti.
  • Pertanyaan asli: Gunakan SQL asli untuk menanyakan pangkalan data.
  • // 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();

Ringkasan

JPA ialah

rangka kerja kegigihan yang kuat yang menyediakan akses bersatu kepada pangkalan data hubungan. Dengan menggunakan JPA, kami boleh dengan mudah mengekalkan objek Java ke dalam pangkalan data dan objek entiti pertanyaan menggunakan JPQL, API Kriteria atau pertanyaan asli.

Atas ialah kandungan terperinci Selami konsep teras Java JPA: entiti, pemetaan dan pertanyaan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:lsjlt.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam