JPA(Java Persistence API)學習八(集合對映Map)
阿新 • • 發佈:2020-09-08
1.概述
Map
是一個介面,其中一個唯一鍵與每個值物件相關聯。
因此,搜尋,更新,刪除等操作都是基於鍵來進行的。
2.示例
第一步:
概述:建立一個實體類Employee.java
,這個類包含員工id
,name
和嵌入物件(員工地址)。
註解 @ElementCollection
表示嵌入物件。
程式碼:
import java.util.*;
import javax.persistence.*;
@Entitypublic class Employee {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int e_id;
private String e_name; @ElementCollection
private Map<Integer, Address> map = new HashMap<Integer, Address>(); } 第二步:建立一個嵌入物件
Address.java
類。 註解@Embeddable
表示可嵌入物件。
import javax.persistence.*;@Embeddable
public class Address {
private String e_city;
private String e_state; } 第三步:將實體類和資料庫配置對映到
persistence.xml
檔案中
<?xml version="1.0" encoding="UTF-8"?><persistence version="2.1"
xmlns="http://xmlns.jcp.org/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="Collection_Type">
<class>com.yiibai.jpa.Employee</class>
<class>com.yiibai.jpa.Address</class>
<properties>
<property name="javax.persistence.jdbc.driver"
value="com.mysql.jdbc.Driver" />
<property name="javax.persistence.jdbc.url"
value="jdbc:mysql://localhost:3306/testdb?serverTimezone=UTC" />
<property name="javax.persistence.jdbc.user" value="root" />
<property name="javax.persistence.jdbc.password"
value="123456" />
<property name="eclipselink.logging.level" value="SEVERE" />
<property name="eclipselink.ddl-generation"
value="create-or-extend-tables" />
</properties>
</persistence-unit>
</persistence>