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

Selami konsep teras Java JPA: entiti, pemetaan dan pertanyaan

王林
Lepaskan: 2024-02-19 23:30:38
ke hadapan
1167 orang telah melayarinya

深入探索 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 方法
}
Salin selepas log masuk

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 方法
}
Salin selepas log masuk

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();
    Salin selepas log masuk

    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!

Label berkaitan:
sumber:lsjlt.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan