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 ------------------------------------ ...
随机推荐
- HttpClient忽略SSL证书
今天公司项目请求一个接口地址是ip格式的,如:https://120.20.xx.xxx/xx/xx,报一个SSL的错: 由于之前请求的接口地址都是域名地址,如:https://www.xxx.com ...
- [20190929]bash使用bc计算的相关问题.txt
[20190929]bash使用bc计算的相关问题.txt --//快放假没什么事情,使用bash写一些小程序,转化number到oracle number编码,使用bc计算功能,发现一些小问题--/ ...
- Shell—三剑客(grep、sed、awk)
grep命令详解 文本搜索工具,根据用户指定的“模式(pattern)”对目标文本进行过滤,显示被模式匹配到的行. 命令格式:grep [options] pattern filename.gr ...
- [Go] gocron源码阅读-flag包实现命令行参数获取
调用flag包可以方便的获取到命令行中传递的参数,比如可以实现类似nginx执行程序获取命令行参数执行不同操作的目标 package main import ( "flag" &q ...
- IntelliJ IDEA 创建动态的JavaWeb工程(五)
1. 创建动态的web项目 如果创建项目后没有自动创建web文件夹,即没有自动创建 web.xml 及 index.jsp 文件,还可以通过IDEA编辑器中的File -- Project Struc ...
- https://ggaaooppeenngg.github.io/
https://ggaaooppeenngg.github.io/
- django 报错Reverse for 'detail' with keyword arguments '{'pk': '2'}' not found. 1 pattern(s) tried: ['$post/(?P<pk>[0-9]+)/$']
Django报错:Reverse for 'detail' with keyword arguments '{'pk': '2'}' not found. 1 pattern(s) tried: [' ...
- css3之水波效果
这些效果可谓多种多样,当然用canvas.svg也都能实现奈何对这些有不熟悉(尴尬),不过咱们用css来写貌似也没想象中的那么难吧. 一 悬浮球水波效果 效果图 css .container { w ...
- Serializers 序列化组件——ModelSerializer详解
前面学习Serializers用法时,发现所有的序列化都与我们的模型紧密相关. django_restframework也给我提供了跟模型紧密相关的序列化器——ModelSerializer. 它会根 ...
- chentos7 安装jdk1.8(二进制安装)
首先下载jdk1.8 去官网下载jdk:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.h ...