首頁  >  文章  >  Java  >  深入探索 Java JPA 的核心概念:實體、映射和查詢

深入探索 Java JPA 的核心概念:實體、映射和查詢

王林
王林轉載
2024-02-19 23:30:381123瀏覽

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

實體

php小編蘋果在本文中將帶您深入探索Java JPA的核心概念:實體、映射和查詢。隨著現代應用程式的複雜性增加,對JPA的理解變得至關重要。本文將幫助您理解JPA中的關鍵概念,以便更好地應用於實際專案。

@Entity
public class Person {

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

private String name;

private int age;

// 省略 getter 和 setter 方法
}

映射

映射是 JPA 用於將實體類別中的屬性與資料庫中的欄位相對應的機制。 JPA 提供了許多類型的映射,包括:

  • 一對一映射:一個實體類別中的一個屬性對應資料庫表中的一列。
  • 一對多映射:一個實體類別中的一個屬性對應資料庫表中的多列。
  • 多對一映射:一個實體類別中的多個屬性對應資料庫表中的一列。
  • 多對多重映射:一個實體類別中的多個屬性對應資料庫表中的多列。

映射也可以指定屬性的類型、長度、是否允許為空等資訊。

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

查詢

JPA 提供了多種查詢機制,包括:

  • JPQL(Java Persistence Query Language):一種類似 sql 的查詢語言,可以用來查詢實體物件。
  • Criteria api:一種物件導向的查詢 API,可以用來查詢實體物件。
  • 本機查詢:使用原生 SQL 查詢資料庫。
// 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();

總結

JPA 是一個強大的持久化框架,它提供了對關聯式資料庫的統一存取。透過使用 JPA,我們可以輕鬆地將 Java 物件持久化到資料庫中,並使用 JPQL、Criteria API 或本機查詢來查詢實體物件。

以上是深入探索 Java JPA 的核心概念:實體、映射和查詢的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:lsjlt.com。如有侵權,請聯絡admin@php.cn刪除