• @manyToOne.@oneToMany


    @ManyToOne注解的这端,是多端

    1.在注释@ManyToOne(cascade=CascadeType.REFRESH,optional=true)中将属性optional设置为true,这可以使得即使外键为空时仍可以向表中添加数据。

    2.假设Person和Book是一对多的关系,其中Person的成员变量为:

    private Integer personId;  //此属性与:@ManyToOne(cascade=CascadeType.REFRESH,optional=true)@JoinColumn(name="personId") 对应

    private String name;

    private Short age;

    private List<Book> bookList=new ArrayList<Book>();

    对应在MySql中表的结构为:

    Person(personId,name,age),不必有bookList一项,在getBookList上方通过注释:@OneToMany(mappedBy="person",cascade=CascadeType.ALL)

    @OrderBy(value="bookId ASC")

    与Book关系形成一对多的关系。Book的成员变量是:

    private int bookId;

    private String title;

    private double price;

    private Person person;   //此属性与:@OneToMany(mappedBy="person"  中的person对应

    对应在MySql中表的结构为:Book(bookId,title,price,personId),注意要有Person表的主键personId,这样在插入记录时才不会产生异常。在getPerson上方有注释:

    @ManyToOne(cascade=CascadeType.REFRESH,optional=true)

    @JoinColumn(name="personId")

    与@OneToMany形成呼应。

  • 相关阅读:
    补发《超级迷宫》站立会议九
    补发《超级迷宫》站立会议八
    补发《超级迷宫》站立会议七
    补发《超级迷宫》站立会议六
    一周开发项目
    所学的内容
    开发项目和所用时间 感想
    自我介绍
    大容量数据转移操作命令——BULK INSERT(类似于BCP)
    字符编码与文件处理
  • 原文地址:https://www.cnblogs.com/toSeeMyDream/p/4332364.html
Copyright © 2020-2023  润新知