JPA#OneToOne

无力吐槽。



一对一,一个人有一个身份证号码、一个人有一条命,类似于这一种的就是一对一的关系。



涉及到的注解两个:

OneToOne

JoinColumn(

name="当前实体对应数据库表中的字段名称,这个字段是一对一关系中对方的主键,这个字段是本表中的外键",

referencedColumnName="这是个数据库表的字段名称,字段为当前表的外键所对应的另外一张表的主键"



举一个例子:一个学生有一个桌子

@Entity
@Table(name="t_student")
public class Student {

	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	@Column(name="id")
	private Integer id;

	@Column(name="name")
	private String name;

	/**
	 * JoinColumn的name值为:当前实体对应表的外键
	 * JoinColumn的JoinColumn的值为:当前实体对应表的外键所引用的表的主键
	 */
	@OneToOne
	@JoinColumn(name="desk_id",referencedColumnName="id")
	private Desk desk;

	@Override
	public String toString() {
		return ReflectionToStringBuilder.toString(this, ToStringStyle.MULTI_LINE_STYLE);
	}

}

  

@Entity
@Table(name="t_desk")
public class Desk {

	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	@Column(name="id")
	private Integer id;

	@Column(name="name")
	private String name;

	@Override
	public String toString() {
		return ReflectionToStringBuilder.toString(this, ToStringStyle.MULTI_LINE_STYLE);
	}
}

  

数据库表:

_

映射,无论是一对一或者是其他的映射形式,都在另外一个维度分为单向的映射,以及双向映射。其中双向映射时候,JSON序列化会产生死循环。

原文地址:https://www.cnblogs.com/luohaonan/p/11241599.html

时间: 2024-08-14 02:29:53

JPA#OneToOne的相关文章

JPA OneToOne,OneToMany和ManyToMany的mappedBy属性

在四种关联关系OneToOne,OneToMany,ManyToOne和ManyToMany中,只有OneToOne.OneToMany和ManyToMany这三中关联关系有mappedBy属性. 下面是mappedBy属性在java doc里边的解释: the field that owns the relationship. Required unless the relationship is unidirectional. 翻译成中文是: 拥有关联关系的域,如果关系是单向的就不需要. 那

hibernate jpa & Error 500: javax/persistence/OneToOne.orphanRemoval()Z

WebSphere 7 & Javax/Persistence/OneToMany.OrphanRemoval() Error 文章出处:http://www.mkyong.com/websphere/websphere-7-javaxpersistenceonetomany-orphanremoval-error/ Problem In Hibernate development, contains a model class with JPA @OneToMany annotation :

JPA实体属性one-to-one关系映射

package com.lc.bean; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persi

JPA关系映射之one-to-one

一对一关联有两种实现方式:一种是共享的主键关联,另一种是一对一的外键关联 1.共享的主键关联:让两个对象具有共同的主键值,以表明他们之间的一一对应关系. Person.java类 1 public class Person implements java.io.Serializable { 2 3 // Fields 4 5 private Integer id; 6 private String name; 7 private Idcard idcard; 8 9 // Constructor

JPA总结——实体关系映射(一对一@OneToOne)

一对一(@OneToOne) · 单向关联# 注释@OneToOne定义如下:@Target({METHOD, FIELD}) @Retention(RUNTIME)public @interface OneToOne {    Class targetEntity() default void.class;    CascadeType[] cascade() default {};    FetchType fetch() default EAGER;    boolean optional

Java、Hibernate(JPA)注解大全

1.@Entity(name=”EntityName”) 必须,name为可选,对应数据库中一的个表 2.@Table(name=””,catalog=””,schema=””) 可选,通常和@Entity配合使用,只能标注在实体的class定义处,表示实体对应的数据库表的信息 name:可选,表示表的名称.默认地,表名和实体名称一致,只有在不一致的情况下才需要指定表名 catalog:可选,表示Catalog名称,默认为Catalog(“”). schema:可选,表示Schema名称,默认为

深入浅出学Spring Data JPA

第一章:Spring Data JPA入门   Spring Data是什么 Spring Data是一个用于简化数据库访问,并支持云服务的开源框架.其主要目标是使得对数据的访问变得方便快捷,并支持map-reduce框架和云计算数据服务. Spring Data 包含多个子项目: Commons - 提供共享的基础框架,适合各个子项目使用,支持跨数据库持久化 JPA - 简化创建 JPA 数据访问层和跨存储的持久层功能 Hadoop - 基于 Spring 的 Hadoop 作业配置和一个 P

jpa的双向一对多和双向一对一关联关系

在分享之前先给大家看两个异常,应该说这一类的异常还是很常见的,主要原因是jar包冲突 异常1: java.lang.NoSuchFieldError: INSTANCE at org.hibernate.type.BasicTypeRegistry.<init>(BasicTypeRegistry.java:94) at org.hibernate.type.TypeResolver.<init>(TypeResolver.java:59) at org.hibernate.cfg

学习笔记JPA

转自:http://www.cnblogs.com/holbrook/archive/2012/12/30/2839842.html(觉得写的太好了,就贴在这方便自己回顾) JPA定义了Java ORM及实体操作API的标准.本文摘录了JPA的一些关键信息以备查阅. 如果有hibernate的基础,通过本文也可以快速掌握JPA的基本概念及使用. Table of Contents 1 JPA概述 2 实体生命周期 3 实体关系映射(ORM) 3.1 基本映射 3.2 ID生成策略 3.3 关联关