`
wjjbfq
  • 浏览: 82135 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JPA的映射

    博客分类:
  • JPA
阅读更多

下面总结一下jpa的映射:

这些映射可以都配置成双向关联,然后设置维护端,多对一 维护端要设在多的一段

其他根据情况设定。设置维护端要在被维护端设置(mappedBy)见下面代码

一对一:oneToone

一对多/多对一:manytoone

多对多:manytomany:

 

下面是各种类型的属性的映射方法:one-one 映射,配置成了双向关联,维护方为person
package cn.itcast.bean;

import java.util.Date;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToOne;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
public class IDCard {
	private Integer cardid;
	private String cardno;
	private Date birthday = new Date();
	private Person person;
	public IDCard(){}
	
	public IDCard(String cardno) {
		this.cardno = cardno;
	}	
//解释:mappedBy 维护方为person类里的card属性 ,cascade为级联 这里是级联刷新,
	@OneToOne(mappedBy="card",cascade=CascadeType.REFRESH)
	public Person getPerson() {
		return person;
	}
	public void setPerson(Person person) {
		this.person = person;
	}
	@Id @GeneratedValue(strategy=GenerationType.IDENTITY)//Id 表示这里为主键 GeneratedValue配置主键生成策略
	public Integer getCardid() {
		return cardid;
	}
	public void setCardid(Integer cardid) {
		this.cardid = cardid;
	}
	
	@Column(length=18,nullable=false)
	public String getCardno() {
		return cardno;
	}
	public void setCardno(String cardno) {
		this.cardno = cardno;
	}
	
	@Temporal(TemporalType.DATE) @Column(nullable=false) //日期类型的 nullable 是否可以为空
	public Date getBirthday() {
		return birthday;
	}
	public void setBirthday(Date birthday) {
		this.birthday = birthday;
	}
	
}

 

package cn.itcast.bean;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;

@Entity
public class Person {
	private Integer id;
	private String name;
	private IDCard card;
	
	@OneToOne(cascade=CascadeType.ALL,optional=false) //optional为false 则card不为null
	@JoinColumn(name="card_id") // 设置外键的名称,不设置会使用jpa自动生成的。
	public IDCard getCard() {
		return card;
	}
	public void setCard(IDCard card) {
		this.card = card;
	}
	@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	@Column(length=10,nullable=false)
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	
}

 

分享到:
评论

相关推荐

    JPA映射关系,多种映射关系的图解

    JPA映射关系,多种映射关系的图解,适合EJB初学者,对JPA映射关系的了解.

    JPA映射关系详解javax JPA JPA映射关系 JPA映射

    ### JPA映射关系详解 Java Persistence API (JPA) 是一种用于管理关系型数据库中的数据的标准 Java 技术。JPA 提供了一种对象关系映射 (ORM) 方法来处理数据库,允许开发者以面向对象的方式操作数据库。本文将详细...

    05_传智播客JPA详解_日期_枚举等字段类型的JPA映射

    本课程"05_传智播客JPA详解_日期_枚举等字段类型的JPA映射"深入讲解了JPA在处理特定字段类型,如日期和枚举时的映射方法。以下是关于JPA和这些特定字段类型映射的详细知识: 1. **JPA基础**: JPA通过提供API和...

    jpa映射关系详解[参照].pdf

    jpa映射关系详解[参照].pdf

    JPA视频教程_使用jpa映射关联和继承

    在这个**“JPA视频教程_使用jpa映射关联和继承”**中,我们将深入探讨如何利用JPA来处理实体之间的关联和类的继承关系。 **1. JPA 注解** JPA 注解是实现ORM的主要手段,它们可以直接在实体类上声明,用于定义...

    05_JPA详解_日期_枚举等字段类型的JPA映射.zip

    本资料主要针对JPA在处理日期、枚举等特殊字段类型时的映射进行深入解析。 ### 1. JPA基本概念 JPA通过提供一套API和元数据接口,允许开发人员将对象模型与关系数据库的表结构进行映射,从而简化了数据库操作。它...

    JPA详解视频教程 第5讲 日期_枚举等字段类型的JPA映射.avi

    JPA用于整合现有的ORM技术,可以简化现有Java EE和Java SE应用对象持久化的开发工作,实现ORM的统一。JPA详解视频教程 第5讲 日期_枚举等字段类型的JPA映射.avi

    JPA详解视频教程 第18讲 使用jpa映射单个实体对象.avi

    JPA用于整合现有的ORM技术,可以简化现有Java EE和Java SE应用对象持久化的开发工作,实现ORM的统一。JPA详解视频教程 第18讲 使用jpa映射单个实体对象.avi

    使用jpa映射关联和继承

    在Java世界中,Java Persistence API(JPA)是用于对象关系映射(ORM)的一种标准框架,它允许开发者将数据库操作与业务逻辑紧密结合,而无需编写大量的SQL代码。本篇文章将深入探讨如何在JPA中映射关联和实现继承。...

    56_传智播客巴巴运动网_设置产品实体对象的JPA映射

    本课程"56_传智播客巴巴运动网_设置产品实体对象的JPA映射"可能涉及的是如何将Java类映射到数据库表,并通过JPA进行操作。 首先,我们需要理解JPA的核心概念:实体(Entity)。在JPA中,实体代表数据库中的一个表,...

    JPA视频教程_使用jpa映射单个实体对象

    在Java世界中,Java Persistence API(JPA)是一种标准的ORM(对象关系映射)框架,用于管理和持久化Java应用程序中的数据。它允许开发者用面向对象的方式操作数据库,而无需直接编写SQL语句。本教程重点讲解如何...

    java + spring boot +jpa 拦截器分库分表demo

    接下来,创建实体类(Entity),这是JPA映射数据库表的基础,通过`@Entity`注解标识。同时,使用`@Table`注解指定对应的数据库表名,`@Id`表示主键字段。 接下来,我们要实现分库分表。在传统的数据库操作中,分库...

    jpa的实体映射关系7种

    在Java Persistence API (JPA) 中,实体映射关系是数据库关系模型与Java对象模型之间的桥梁,用于在ORM(对象关系映射)框架下管理数据。JPA 提供了多种映射关系,使得开发者能够方便地处理不同类型的关联。下面我们...

    JPA学习笔记(高手笔记录)

    JPA映射主要涉及实体间的关系映射,如一对一、一对多、多对多和继承映射。一对一映射可以通过共享主键或外键实现;一对多和多对一关联可以是字段级别或表级别,通过`@OneToMany`和`@ManyToOne`注解;多对多关联通常...

    JPA学习笔记

    ### 四、JPA映射 4.1 一对一映射 一对一映射分为共享主键映射和外键映射,通过`@OneToOne`注解实现,可以设置`mappedBy`属性来指定关联关系的维护方。 4.2 一对多关联 `@OneToMany`和`@ManyToOne`组合使用实现一对...

    传智播客JPA学习笔记.pdf

    日期_枚举等字段类型的JPA映射** JPA提供了对不同数据类型的映射,如日期类型(@Temporal),枚举类型(@Enumerated),甚至自定义类型,通过Converter接口可以自定义数据类型转换。 **6. 大数据字段映射与字段...

    JPA一对多映射关系解析

    为了方便广大开发朋友的需要特整理一下有关jpa映射关系,希望可以帮助到一些朋友。

    JPA学习笔记-EJB-04JPA关联映射总结

    本篇笔记主要聚焦于JPA的关联映射,这是JPA中一个重要的概念,用于定义实体之间的关系。 关联映射允许我们将数据库中的表关系映射到Java对象的关联上。在Hibernate中,这些关系通常通过XML配置文件来定义,而在JPA...

    jpa使用说明(English)

    JPA 提供了一种标准的方法来管理和存储基于 Java 的应用程序中的对象状态,实现了对象关系映射(ORM),使得开发人员可以在面向对象的方式下操作数据库。本指南将详细介绍 JPA 的核心概念、用法及其实现方式。 ####...

    SpringData JPA 参考文档PDF 英文

    其他(Miscellaneous)部分则包含了一些杂项内容,例如如何合并持久化单元、类路径扫描@Entity类和JPA映射文件,以及CDI集成等。 整体而言,Spring Data JPA的官方参考文档是一个非常全面的技术指南,它不仅详细...

Global site tag (gtag.js) - Google Analytics