微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Spring JPA双重创建

如何解决Spring JPA双重创建

为了简洁起见,我有一个O:M关系的vendor-Editypes的父子。我无法解释的是,如果包括下面注释掉的行,则将创建两次EDITypes a0-a3。令人印象深刻,但不是完全理解如何保存供应商一次自动创建EDIType,如下所示。也没有将EDIType添加到供应商的方式会强制两次创建EDIType。我本来必须保存EDITypes。 O:M的受控副本如何控制?我是否必须始终保存在M侧?

EDIType a0 = new EDIType(abuyers,"receiving00-xls");a0.setvendor(abuyers);
EDIType a1 = new EDIType(abuyers,"receiving01-xlsx");a1.setvendor(abuyers);
EDIType a2 = new EDIType(abuyers,"receiving02-pdf");a2.setvendor(abuyers);
EDIType a3 = new EDIType(abuyers,"creditMemo00-xls");a3.setvendor(abuyers);
List<EDIType> eList = Arrays.asList(a3,a2,a1,a0);
//abuyers.getEdis().addAll(eList);  //when commented out correct. else double creation
this.add(abuyers);

解决方法

就像插入EDIType表一样,将外键作为买方的主键。插入完成后,您无需在Abuyer上进行任何更改。

毕竟,只是ORM尝试以面向对象的方式处理SQL表,但仍然强调机制仍然是SQL表。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。