java – 获取特定列表后,Spring Jpa删除操作不起作用
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 获取特定列表后,Spring Jpa删除操作不起作用,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1950字,纯文字阅读大概需要3分钟。
内容图文
![java – 获取特定列表后,Spring Jpa删除操作不起作用](/upload/InfoBanner/zyjiaocheng/775/ed682bed4207448e86415d6069ff866d.jpg)
这些是我的实体;
@Entity
public class IpAddress{
@Id
@Column(nullable = false, updatable = false)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ")
@Getter
private Long id;
@ManyToOne(fetch = FetchType.LAZY)
private final Application application;
.....
}
@Entity
public class Application{
@Column(nullable = false, updatable = false)
private final String applicationId;
@OneToMany(mappedBy = "application", cascade = CascadeType.ALL, orphanRemoval = true)
private List<IpAddress> ipAddresses = new ArrayList<>();
}
@Entity
public class MerchantApplication {
@Id
@Column(nullable = false, updatable = false)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ")
@Getter
private Long id;
@OneToOne
private final Merchant merchant;
@OneToOne(cascade = CascadeType.ALL)
private final Application application;
@ManyToOne(fetch = FetchType.LAZY)
private final User user;
}
这是我尝试删除的服务方法:
@Transactional
public void deleteIpAddressForMerchant(Long merchantId,Long ipAddressId) {
Merchant merchant = merchantRepository.getMerchant(merchantId);
MerchantApplication merchantApplication = merchant.getMerchantApplication();
if (Objects.isNull(merchantApplication))
throw new ApplicationNotFoundException();
if (merchantApplication.getApplication().getIpAddresses().size() == 1) {
throw new IpAddressCannotBeDeleted();
}
IpAddress ipAddress = ipAddressRepository.getByIdAndApplication(ipAddressId, merchantApplication.getApplication());
ipAddressRepository.delete(ipAddress);
}
我在服务方法中删除这个块时工作正常;
if (merchantApplication.getApplication().getIpAddresses().size() == 1) {
throw new IpAddressCannotBeDeleted();
}
但是这样,它不起作用.你可以帮助我,问题是什么?
解决方法:
如果您在@Transactional方法中获取具有orphanRemoval = true属性的实体字段,则在方法返回时,它将保存此字段并对其进行更改.
在你的情况下,你取
merchantApplication.getApplication().getIpAddresses()
但是你没有对它进行任何更改,然后将获取的列表保存为原样.
您可以删除已删除列表中要删除的元素.
内容总结
以上是互联网集市为您收集整理的java – 获取特定列表后,Spring Jpa删除操作不起作用全部内容,希望文章能够帮你解决java – 获取特定列表后,Spring Jpa删除操作不起作用所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。