美文网首页
JPA双向级联更新(不推荐)

JPA双向级联更新(不推荐)

作者: 神豪VS勇士赢 | 来源:发表于2018-08-27 20:11 被阅读30次

注解多对一
@ManyToOne(fetch = FetchType.LAZY,cascade = CascadeType.ALL)
@JoinColumn(name = "type_id")//关联字段
private BookType bookTypeByTypeId;//多对一

注解一对多
@OneToMany(fetch = FetchType.EAGER,cascade = CascadeType.ALL)
@JoinColumn(name = "type_id")
private Collection<BookInfo> bookInfosByTypeId=new HashSet<BookInfo>();

(没有单独的inverse属性(Hiberante的ORM映射文件中有),这里mappedBy和JoinColumn不共融)

表设置级联更新:

image.png

添加图书的时候添加分类


注意 :
persist方法必须是新添加的分类,不是已经有的分类。

public void addBook(){
EntityManager entityManager = JPAUitls.createSession();
EntityTransaction transaction = entityManager.getTransaction();
transaction.begin();
BookInfo bookInfo = new BookInfo();
bookInfo.setBookName("Java");
bookInfo.setBookAuthor("1803");
bookInfo.setBookDate(new Date().getTime());
bookInfo.setBookDesc("java1803");
bookInfo.setBookPrice(8.3);
bookInfo.setBookPublish("清华");
BookType bookType = new BookType();
//新分类,DB没记录,这种方式不可以调用BookTypeDao获取已有的分类。
bookType.setTypeName("test");
bookType.setTypeDesc("test");
bookInfo.setBookTypeByTypeId(bookType);
entityManager.persist(bookInfo);
transaction.commit();
entityManager.close();
}
或者使用merge方法,可以是已有的分类。

添加分类的时候添加图书
public void addType(){
EntityManager entityManager = JPAUitls.createSession();
EntityTransaction transaction = entityManager.getTransaction();
transaction.begin();
BookType bookType = new BookType();
bookType.setTypeName("Java1803222");
bookType.setTypeDesc("Java1803所有工程师快毕业了");
BookInfo bookInfo = new BookInfo();//新添加图书
bookInfo.setBookName("Java222");
bookInfo.setBookAuthor("1803");
bookInfo.setBookDate(new Date().getTime());
bookInfo.setBookDesc("java1803");
bookInfo.setBookPrice(8.3);
bookInfo.setBookPublish("清华");
bookType.getBookInfosByTypeId().add(bookInfo);
entityManager.persist(bookType);
transaction.commit();
entityManager.close();
}

相关文章

  • JPA双向级联更新(不推荐)

    注解多对一@ManyToOne(fetch = FetchType.LAZY,cascade = CascadeT...

  • Jpa级联操作

    Jpa级联操作 级联web记JPA一个问题,Multiple representations of the sam...

  • jpa 级联

    jpa级联 对应项里面似乎不用再做处理了 在做级联删除的时候应该@onetomany里面的orphanRemova...

  • Hibernate 关联关系映射

    本文包括:1、一对多结构的准备2、双向关联与单向关联3、级联保存4、级联删除5、cascade 属性——级联6、i...

  • Spring Boot JPA @OneToMany @Many

    本文介绍 Spring Boot JPA @OneToMany 和 @ManyToOne 双向映射的使用方法。 目...

  • 工作流引擎Activiti集成JPA持久化保存流程数据

    Activiti中JPA简介 可以使用JPA实体作为流程变量, 并进行操作:基于流程变量更新已有的JPA实体,可以...

  • 二、JPA 入门

    关联映射 一对多(多对一) 双向关联 多对多的双向关联 JPA 二级缓存的使用 (使用的 ehcache) 环境搭...

  • 双向绑定不更新的问题

    问题描述: 调用蓝牙插件,获取返回数据之后,需要将返回值在前台显示,但是每次必须手动触碰控件的输入域,获得到的数据...

  • Oracle

    匿名块: 存储过程: 级联查询 批量更新

  • Jpa 操作mongodb

    MondoDB实体类 Jpa Repository 使用JPA 个人微信公众,经常更新一些实用的干货:

网友评论

      本文标题:JPA双向级联更新(不推荐)

      本文链接:https://www.haomeiwen.com/subject/xfntwftx.html