广州北大青鸟计算机职业培训学校
互联网技术培训、软件技术培训、大数据培训、云计算培训、数据分析培训信息网
当前位置:网站首页 > 软件教程 > Java技术 > 正文

惠州什么是JPA ElementCollection通用目标实体?_北大青鸟IT学校

作者:邓华发布时间:2021-05-05分类:Java技术浏览:764


导读:大家知道什么是JPA ElementCollection通用目标实体吗?接下来跟着惠州北大青鸟老师一起来学习一下。

大家知道什么是JPA ElementCollection通用目标实体吗?接下来跟着惠州北大青鸟老师一起来学习一下。

以下部分显示如何将Java集合映射到数据库。它使用@ElementCollection注释来标记集合中的元素类型。

实例

以下代码来自Employee.java。

package cn.w3cschool.common;

import java.util.Collection;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.Set;

import javax.persistence.ElementCollection;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entitypublic class Employee {
   @Id @GeneratedValue(strategy=GenerationType.IDENTITY)    private int id;    private String name;    private long salary;

   // Using a targetClass instead of generics
   @ElementCollection(targetClass=VacationEntry.class)    private Collection vacationBookings = new LinkedList();

   // Using generics in place of a targetClass
   @ElementCollection    private Set<String> nickNames = new HashSet();    
   public Collection getVacationBookings() {
       return vacationBookings;
   }    public void setVacationBookings(Collection vacationBookings) {
       this.vacationBookings = vacationBookings;
   }    public Set<String> getNickNames() {
       return nickNames;
   }    public void setNickNames(Set<String> nickNames) {
       this.nickNames = nickNames;
   }    
   public int getId() {
       return id;
   }    
   public void setId(int id) {
       this.id = id;
   }    
   public String getName() {
       return name;
   }    
   public void setName(String name) {
       this.name = name;
   }    public long getSalary() {
       return salary;
   }    public void setSalary(long salary) {
       this.salary = salary;
   }    
   public String toString() {
       return "Employee id: " + getId() + " name: " + getName() +
              " salary: " + getSalary() +
              " nickNames: " + nickNames;
   }
}

以下代码来自VacationEntry.java。

package cn.w3cschool.common;


import java.util.Calendar;

import javax.persistence.Column;
import javax.persistence.Embeddable;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Embeddablepublic class VacationEntry {
   @Temporal(TemporalType.DATE)    private Calendar startDate;
   @Column(name="DAYS")    private int daysTaken;    public VacationEntry() {}    public VacationEntry(Calendar aStartDate, int daysTakenInt) {
       startDate = aStartDate;
       daysTaken = daysTakenInt;
   }    
   public Calendar getStartDate() {
       return startDate;
   }    public void setStartDate(Calendar startDate) {
       this.startDate = startDate;
   }    public int getDaysTaken() {
       return daysTaken;
   }    public void setDaysTaken(int daysTaken) {
       this.daysTaken = daysTaken;
   }    public String toString() {
       return "VacationEntry startDate: " + getStartDate().getTime() +
              ", daysTaken: " + getDaysTaken();
   }
}

下面的代码来自PersonDaoImpl.java。

package cn.w3cschool.common;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import org.springframework.transaction.annotation.Transactional;

@Transactionalpublic class PersonDaoImpl {  public void test() {

   Employee emp = new Employee();
   emp.setName("name");
   emp.setSalary(12345);
   
   VacationEntry v = new VacationEntry();
   v.setDaysTaken(10);
   
   emp.getVacationBookings().add(v);
   emp.getNickNames().add("Tester");
   em.persist(emp);
 }

 @PersistenceContext  private EntityManager em;
}

这里是数据库表转储。

Table Name: EMPLOYEE
Row:
   Column Name: ID,
   Column Type: INTEGER:
   Column Value: 1

   Column Name: NAME,
   Column Type: VARCHAR:
   Column Value: name

   Column Name: SALARY,
   Column Type: BIGINT:
   Column Value: 12345


Table Name: EMPLOYEE_NICKNAMES
Row:
   Column Name: EMPLOYEE_ID,
   Column Type: INTEGER:
   Column Value: 1

   Column Name: NICKNAMES,
   Column Type: VARCHAR:
   Column Value: Tester





Table Name: EMPLOYEE_VACATIONBOOKINGS
Row:
   Column Name: EMPLOYEE_ID,
   Column Type: INTEGER:
   Column Value: 1

   Column Name: DAYS,
   Column Type: INTEGER:
   Column Value: 10

   Column Name: STARTDATE,
   Column Type: DATE:
   Column Value: null

想了解更多关于Java的资讯吗?可以来惠州北大青鸟新方舟校区了解一下。

java7.png

Java

标签:惠州计算机JAVA软件开发惠州计算机Java软件开发惠州计算机JAVA培训惠州计算机JAVA软件开发学校惠州计算机Java软件开发培训JAVAJava软件开发北大青鸟IT计算机学校北大青鸟IT软件学校北大青鸟IT学校


Java技术排行
标签列表
网站分类
文章归档
最近发表