JPA笔记3 OneToOne
package one_to_one; import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;
import javax.persistence.Table; import com.sun.org.apache.xml.internal.resolver.readers.TR9401CatalogReader; @Table(name = "JPA_DEPARTMENT")
@Entity
public class Department { private Integer id;
private String name; private Manager manager; @GeneratedValue(strategy = GenerationType.AUTO)
@Id
public Integer getId() {
return id;
} public void setId(Integer id) {
this.id = id;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} //注意:1-2关联关系,需要添加unique = true
@JoinColumn(name = "mgr_id", unique = true)
@OneToOne(fetch=FetchType.LAZY)
public Manager getManager() {
return manager;
} public void setManager(Manager manager) {
this.manager = manager;
} }
package one_to_one; import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToOne;
import javax.persistence.Table; @Table(name = "JPA_MANAGER")
@Entity
public class Manager {
private Integer id;
private String mgrName;
private Department department; @GeneratedValue(strategy = GenerationType.AUTO)
@Id
public Integer getId() {
return id;
} public void setId(Integer id) {
this.id = id;
} public String getMgrName() {
return mgrName;
} public void setMgrName(String mgrName) {
this.mgrName = mgrName;
} @OneToOne(mappedBy = "manager")
public Department getDepartment() {
return department;
} public void setDepartment(Department department) {
this.department = department;
} }
package one_to_one; import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.Persistence; public class Main3 { public static void main(String[] args) {
// TODO Auto-generated method stub String persistenceUnitName = "jpa-1";
EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory(persistenceUnitName); EntityManager entityManager = entityManagerFactory.createEntityManager(); EntityTransaction transaction = entityManager.getTransaction();
transaction.begin(); // oneToOnePersist(entityManager);
oneToOneFind(entityManager); transaction.commit();
entityManager.close();
entityManagerFactory.close();
} // 建议先保存不维护关联关系的一方,即没有外键的一方,这样不会多出update语句
private static void oneToOnePersist(EntityManager entityManager) {
Manager manager = new Manager();
manager.setMgrName("M-AA"); Department department = new Department();
department.setName("D-AA"); manager.setDepartment(department);
department.setManager(manager); entityManager.persist(manager);
entityManager.persist(department);
} // 默认通过左连接加载对象
// 如果通过设置@OneToOne的fetch属性为lazy,还是会用左连接,且会多查询
private static void oneToOneFind(EntityManager entityManager) {
Department dept = entityManager.find(Department.class, 1);
System.out.println(dept);
System.out.println(dept.getManager().getMgrName());
}
}
JPA笔记3 OneToOne的更多相关文章
- Spring Data JPA笔记
1. Spring Data JPA是什么 Spring Data JPA是Spring Data大家族中的一员,它对对持久层做了简化,用户只需要声明方法的接口,不需要实现该接口,Spring Dat ...
- Jpa 笔记
ORM 思想 对象关系映射, 建立实体类和表的关系映射关系, 实体类和表中字段的映射关系,我们操作实体类底层是操作数据表, 进而自动的拼接出SQL语句 Jpa规范 Jpa(Java Persisten ...
- JPA笔记4 ManyToMany
package many_to_many; import java.util.HashSet; import java.util.Set; import javax.persistence.Entit ...
- JPA笔记2 OneToMany
package one_to_many; import java.util.HashSet; import java.util.Set; import javax.persistence.Cascad ...
- JPA笔记1 ManyToOne
persistence.xml <?xml version="1.0" encoding="UTF-8"?> <persistence ver ...
- jpa
学习尚硅谷jpa笔记: 所依赖的jar包: 首先在META-INF下创建配置文件,persistence.xml <?xml version="1.0" encoding=& ...
- jpa和hibernate注解
http://www.objectdb.com/api/java/jpa/JoinColumns 用hibernate和jpa annotation 大概一年多了,今天闲来无事,对他们关联关系元数据写 ...
- JPA概要
1 JPA概述 JPA(Java Persistence API,Java持久化API),定义了对象-关系映射(ORM)以及实体对象持久化的标准接口. JPA是JSR-220(EJB3.0)规范的一部 ...
- JPA + SpringData 操作数据库 ---- 深入了解 SpringData
原创播客,如需转载请注明出处.原文地址:http://www.cnblogs.com/crawl/p/7735616.html ------------------------------------ ...
随机推荐
- ADB常用命令(adb常用命令)
基本用法 命令语法 adb 命令的基本语法如下: adb [-d|-e|-s <serialNumber>] <command> 如果只有一个设备/模拟器连接时,可以省略掉 [ ...
- 有趣的bug——Java静态变量的循环依赖
背景 是的,标题没有错误,不是Spring Bean的循环依赖,而是静态变量之间的循环依赖. 近期的项目均是简单的Maven项目,通过K8S部署在阿里云上,其配置文件读取规则如下所示: (1) 优先读 ...
- 简易用户管理系统-前端实现(表单&提交请求&button$基础)
laravel框架编写简易用户管理系统,前端Layui框架. 1.动态生成列表项 实现效果 PHP后台传入用户对象($users). 前端页面接收数据传入table. 逻辑就是在生成表格时,遍历传来的 ...
- BayaiM__SQLLDR 用法:
BayaiM__SQLLDR 用法: ===================================================================== C:\Users\Ad ...
- [MySQL] docker下安装使用mysql配置主从复制
拉取mysql的镜像docker search mysqldocker pull mysql 通过镜像创建容器,这里先创建第一个容器作为master mysql-v /etc/mysql:/etc/m ...
- CPU与GPU基础知识与品牌
1 CPU信息 ubuntu系统: lscpu 序号 属性 描述 1 架构 x86_64 2 CPU 运行模式 32-bit, 64-bit 3 字节序 Little Endian 4 CPU内核数量 ...
- 矩阵补全(Matrix Completion)和缺失值预处理
目录 1 常用的缺失值预处理方式 1.1 不处理 1.2 剔除 1.3 填充 2 利用矩阵分解补全缺失值 3 矩阵分解补全缺失值代码实现 4 通过矩阵分解补全矩阵的一些小问题 References 矩 ...
- (五)Amazon Lightsail 部署LAMP应用程序之迁移到Amazon RDS实例
迁移到您的Amazon RDS实例 在某些时候,您的应用程序需求可能需要在 Amazon Lightsail中找不到的功能.幸运的是,将应用程序的一个或所有部分移动到其他AWS服务中非常简单 您将数据 ...
- 一套从alpine基本镜像到node8.16.2的全套dockerfile
这个花了点时间,可以正式跑起来了. 加了常用的工具及中文时区,非root帐号. 除了pm2,其它的module放到应用程序本身的node_modules目录下来实现的. 一,3rd_part/node ...
- 【BZOJ2437】[Noi2011]兔兔与蛋蛋(博弈+二分图)
传送门 题意: 给出一个\(n*m\)的棋盘,上面有若干个黑色棋子,若干个白色棋子,还有一个空格. 每次先手选择一个空格,将它与相邻的某个白色棋子交换:后手则选择一个空格,与相邻的某个黑色棋子交换. ...