惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

U
Unit 42
博客园 - Franky
T
Tailwind CSS Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
月光博客
月光博客
人人都是产品经理
人人都是产品经理
雷峰网
雷峰网
Hugging Face - Blog
Hugging Face - Blog
有赞技术团队
有赞技术团队
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
阮一峰的网络日志
阮一峰的网络日志
C
Check Point Blog
爱范儿
爱范儿
T
The Blog of Author Tim Ferriss
aimingoo的专栏
aimingoo的专栏
Stack Overflow Blog
Stack Overflow Blog
博客园 - 聂微东
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
L
LangChain Blog
云风的 BLOG
云风的 BLOG
MyScale Blog
MyScale Blog
Microsoft Security Blog
Microsoft Security Blog
The Cloudflare Blog
博客园 - 三生石上(FineUI控件)

博客园 - patrickwai

java enum用法 Java中哈希表(Hashtable)是如何实现的 注意for循环中变量的作用域 用SAX Parser(Simple API for XML)分析RSS android权限 【转】分治法求最大值最小值 JPA基本实体映射学习 Servlet实现基本文件上传 Servlet学习(一) 用javascript与正则表达式验证表单 - patrickwai - 博客园 java题目分析 java中的synchronized Spring学习——依赖注入 Spring学习——Hello World xml,javascript,XMLHttpRequest 学习笔记 向依赖关系宣战——依赖倒置、控制反转和依赖注入辨析[转载] MySql存储过程学习 自己用C语言写的扫雷算法 移位运算实际应用——判断整数N是否为2的阶次方
JPA实体关系映射
patrickwai · 2010-10-06 · via 博客园 - patrickwai

OneToOne

public classEmployee implements Serializable {

         ……

    @OneToOne(cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.LAZY)

    @JoinColumn(name = "ADDR_ID")

  private Address address;

… …

}

ManyToOne

public classEmployee implements Serializable {

         ……

    @ManyToOne(fetch = FetchType.LAZY)

    @JoinTable(name = "EMP_JOB", joinColumns = @JoinColumn(name = "EMP_ID"), inverseJoinColumns = @JoinColumn(name = "TITLE_ID"))

    //連接表 joinColumns參考主表的主鍵的列,inverseJoinColumns參考字段或屬性生成的表格的主鍵的列

  private JobTitle jobTitle;


    @ManyToOne(fetch = FetchType.LAZY)

    @JoinColumn(name = "MANAGER_ID")

  private Employee manager;

… …

}

OneToMany

public classEmployee implements Serializable {

         ……

    @OneToMany(mappedBy = "manager") //manager字段擁有關係

    private List<Employee> managedEmployees = newArrayList<Employee>();


    @OneToMany(mappedBy = "owner", cascade = CascadeType.ALL, orphanRemoval = true)

  private List<PhoneNumber> phoneNumbers = newArrayList<PhoneNumber>();


    @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)

    @JoinColumn(name="EMP_ID")

    private List<Degree> degrees = newArrayList<Degree>();

         ……

}

ManyToMany

public classEmployee implements Serializable {

         ……

    @ManyToMany

    //連接表

    @JoinTable(name = "PROJ_EMP", joinColumns = @JoinColumn(name = "EMP_ID"), inverseJoinColumns = @JoinColumn(name = "PROJ_ID"))

   private List<Project> projects = newArrayList<Project>();

… …

}

联合主键映射

ManyToOne OneToMany ManyToMany映射,而且采用JoinTable映射,会出现联合主键,即双主键。