zoukankan      html  css  js  c++  java
  • JPA一对多单向

    有两种方式实现一对多的单向关联。一种是在只使用@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。

    图片


    图片

    图片


     
  • 相关阅读:
    C#中将dll汇入exe,并加壳
    很不错的在线格式转换网站
    Eclipse快捷键大全
    win7休眠的开启与关闭方法
    C#实现注册码
    Microsoft.CSharp.targets不存在解决方法
    数据库>SQL Server2005>第4季SQL从入门到提高>2SQL Server使用
    main函数名字写错,写成mian等等的错误提示
    CSS选择器
    斐波那契数的实现
  • 原文地址:https://www.cnblogs.com/MAPO/p/8510199.html
Copyright © 2011-2022 走看看