最近刚接触JPA就遇到一个一对多级联更新的棘手问题
父类A(为简单只写主要部分)
class A{
@OneToMany(cascade = CascadeType.ALL, mappedBy = "a")
private List<B> bs=new ArrayList<B>();
}
子类B
class B{
@ManyToOne
private A a;
}
假如当A对象的bs中有两个B对象,当删除其中一个B对象后,再对A对象进行保存,子类B对应的数据表中应该删除这条记录,可事实并非如此;当A对象的bs中有新增或某个B对象更新属性后,保存A对象会级联更新B表,唯独删除不行。
后查资料须在@OneToMany中增加属性orphanRemoval = true,同时在操作A对象时一定要注意bs的引用不能改变,具体例子如下:
假如改变后的列表放在 private List<B> bs_new中
A a=dao.findbyId(id);
a.getBS.clear();
a.getBS.addAll(bs_new);
如果用类似a.setBS(bs_new);这种方式会报错,因为bs属性的引用已经发生了变化。
相关推荐
JPA_OneToMany学习教程JPA_OneToMany学习教程JPA_OneToMany学习教程JPA_OneToMany学习教程
我們使用Spring Framework裡,在Service 的 Method 給予@Transactional 系統就會去管理transaction,我們是在哪裡做了甚麼設定嗎? 為什麼下的這個Annotation成功會commit失敗會rollback呢? Transaction 管理做了...
Hibernate 是最流行的ORM 框架之一,也是最早实现JPA 的规范框架之一。它被JBoss 收购后, 目前作为JBoss 的一个开源框架,它遵循LGPL v2.1 开源许可协议,官方主页是http://www.hiber ate.org/。
下面小编就为大家带来一篇在JPA的@Query注解中使用limit条件(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
JPA注解@Access实例 test-jpa
o @OneToMany o @OneToOne o @OrderBy • P o @PersistenceContext o @PersistenceContexts o @PersistenceProperty o @PersistenceUnit o @PersistenceUnits o @PrimaryKeyJoinColumn o @PrimaryKeyJoinColumns • ...
JPA课程manyToMany OneToMany 等全部测试 注解, 有注释
JPA为我们提供了一组注解:使用Spring-Data- Jpa为我们提供的@EntityGraph,或@EntityGraph和@NamedEntityGraph进行解决。 @NamedEntityGraphs、@NamedEntityGraph、@EntityGraph @NamedEntityGraphs:用于对@...
下面小编就为大家带来一篇使用JPA中@Query 注解实现update 操作方法(必看)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
JPA的基本注解主要包括@Entity、@Table、@Id、@GeneratedValue、@Basic、@Column、@Transient、@Temporal和@TableGenerator等。
NULL 博文链接:https://913.iteye.com/blog/2397146
NULL 博文链接:https://johlon.iteye.com/blog/1039655
NULL 博文链接:https://lc2586.iteye.com/blog/721309
产生原因:因为使用 jpa 自动创建表的时候,采用的是TreeMap的,我们要变成LinkedHashMap 的结构。 解决方案:在项目下java文件夹下创建包名为: org.hibernate.cfg ,创建类: PropertyContainer [包名,类名...
Spring Boot,Maven和MySQL的JPA一对多关系示例 指南 先决条件 JDK 1.8或更高版本 Maven 3或更高版本 MySQL 5.6或更高版本 叠放 Spring Data JPA Sprint Boot MySQL 跑 mvn spring-boot:run
本文是介绍Spring-data-jpa的PPT的学习笔记,整理...JPA API 条件查询 (子查询,多表连接查询) JPA结合QueryDSL轻松完成复杂查询(自连接,多表连接查询) 参与文档: Pro JPA2中文版:精通Java持久化API 优秀博文读书笔记: ...
弹簧过滤器您需要一种无需任何努力即可动态过滤实体的方法吗? 只需将我添加到您的pom.xml 。 您的API将获得功能全面的搜索功能。 您不使用API吗? 没问题,您可能仍然不想弄乱SQL,JPA谓词,... @OneToMany Lis
使用JPA时@Query中的insert语句之对象传参
@OneToMany和@ManyToOne的示例(处理无限递归,请参见[1.1]) 使用jUnit进行基本测试的示例 1.1。 JsonManagedReference和JsonBackReference 从Jackson 1.6开始,您可以使用两个注释来解决无限递归问题,而不必在...
· 0. JPA视频_PPT及源码 · 1. JPA视频_概述 · 2. JPA视频_HelloWorld · 3. JPA视频_基本注解 · 4.... JPA视频_JPQL_子查询和内建函数 · 23. JPA视频_JPQL_DELETE和UPDATE · 24. JPA视频_整合Spring