码迷,mamicode.com
首页 > 其他好文 > 详细

JPA一对多单向

时间:2018-03-05 18:18:31      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:photo   r.java   相册   val   public   关联   延迟加载   实现   nbsp   

有两种方式实现一对多的单向关联。一种是在只使用@OneToMany来标识,这种方式是通过一张第三方表来保存关系。还有一种是使用@OneToMany和@JoinColumn来标注,这种方式是在多的一方(Book)的表中增加一个外键列来保存关系。


  第一种方式,通过一张第三方表来实现一对多的单向关联:

  Author.java如下,需要注意private Set<Book> books = new HashSet<Book>()的注解。只是使用了@OneToMany。

@Entity
@Table(name="author")
public class Author {
@Id
@GeneratedValue
private Long id;
/**作者的名字*/
@Column(length=32)
private String name;
/**作者写的书*/
@OneToMany(cascade=CascadeType.ALL,fetch=FetchType.LAZY)
//级联保存、更新、删除、刷新;延迟加载
private Set<Book> books = new HashSet<Book>();

  

  Book.java如下,因为是单向的关联,所以这个实体不需要加任何的关联标识。

  

 

  只在Author实体中对private Set<Book> books = new HashSet<Book>()加上标注@OneToMany实现单向关联。这样就通过一个关联表来实现这种关联。生成数据库表如下,会以Author的表名和下划线和Book的表名生成一张表author_book来保存Author和Book的一对多单向映射。


技术分享图片

技术分享图片

第二种方式,通过在多方(Book)的表中增加一个外键列实现一对多的单向关联。

  Author.java如下,需要注意private Set<Book> books = new HashSet<Book>()的注解。同时使用了@OneToMany和@JoinColumn。

技术分享图片


技术分享图片

技术分享图片


 

JPA一对多单向

标签:photo   r.java   相册   val   public   关联   延迟加载   实现   nbsp   

原文地址:https://www.cnblogs.com/MAPO/p/8510199.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!