这些是我的实体;
@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();
}
但是这样不行。你能帮我吗,有什么问题吗?
12345678_0001
米琪卡哇伊
相关分类