1. 程式人生 > 實用技巧 >JPA(Java Persistence API)學習八(集合對映Map)

JPA(Java Persistence API)學習八(集合對映Map)

1.概述

Map是一個介面,其中一個唯一鍵與每個值物件相關聯。

因此,搜尋,更新,刪除等操作都是基於鍵來進行的。

2.示例

第一步:

概述:建立一個實體類Employee.java,這個類包含員工idname 和嵌入物件(員工地址)。

註解 @ElementCollection 表示嵌入物件。

程式碼:

import java.util.*;

import javax.persistence.*;

@Entity
public 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 int e_pincode;
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"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence "
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>