fixed sql constraint handling

This commit is contained in:
dashevchenko 2024-10-30 17:08:58 +02:00
parent a978dcd29b
commit f42aa71020
2 changed files with 12 additions and 10 deletions

View File

@ -80,14 +80,8 @@ public class MobileAppBundleServiceImpl extends AbstractEntityService implements
@Override @Override
public void deleteMobileAppBundleById(TenantId tenantId, MobileAppBundleId mobileAppBundleId) { public void deleteMobileAppBundleById(TenantId tenantId, MobileAppBundleId mobileAppBundleId) {
log.trace("Executing deleteMobileAppBundleById [{}]", mobileAppBundleId.getId()); log.trace("Executing deleteMobileAppBundleById [{}]", mobileAppBundleId.getId());
try { mobileAppBundleDao.removeById(tenantId, mobileAppBundleId.getId());
mobileAppBundleDao.removeById(tenantId, mobileAppBundleId.getId()); eventPublisher.publishEvent(DeleteEntityEvent.builder().tenantId(tenantId).entityId(mobileAppBundleId).build());
eventPublisher.publishEvent(DeleteEntityEvent.builder().tenantId(tenantId).entityId(mobileAppBundleId).build());
} catch (Exception e) {
checkConstraintViolation(e, "fk_android_app_id", "The mobile app referenced by the mobile bundle cannot be deleted!",
"fk_ios_app_id", "The mobile app referenced by the mobile bundle cannot be deleted!");
throw e;
}
} }
@Override @Override

View File

@ -43,6 +43,7 @@ import java.util.Optional;
public class MobileAppServiceImpl extends AbstractEntityService implements MobileAppService { public class MobileAppServiceImpl extends AbstractEntityService implements MobileAppService {
private static final String PLATFORM_TYPE_IS_REQUIRED = "Platform type is required if package name is specified"; private static final String PLATFORM_TYPE_IS_REQUIRED = "Platform type is required if package name is specified";
private static final String MOBILE_APP_BUNDLE_CONSTRAINT = "The mobile app referenced by the mobile bundle cannot be deleted!";
@Autowired @Autowired
private MobileAppDao mobileAppDao; private MobileAppDao mobileAppDao;
@ -67,8 +68,15 @@ public class MobileAppServiceImpl extends AbstractEntityService implements Mobil
@Override @Override
public void deleteMobileAppById(TenantId tenantId, MobileAppId mobileAppId) { public void deleteMobileAppById(TenantId tenantId, MobileAppId mobileAppId) {
log.trace("Executing deleteMobileAppById [{}]", mobileAppId.getId()); log.trace("Executing deleteMobileAppById [{}]", mobileAppId.getId());
mobileAppDao.removeById(tenantId, mobileAppId.getId()); try {
eventPublisher.publishEvent(DeleteEntityEvent.builder().tenantId(tenantId).entityId(mobileAppId).build()); mobileAppDao.removeById(tenantId, mobileAppId.getId());
eventPublisher.publishEvent(DeleteEntityEvent.builder().tenantId(tenantId).entityId(mobileAppId).build());
} catch (Exception e) {
checkConstraintViolation(e,
Map.of("fk_android_app_id", MOBILE_APP_BUNDLE_CONSTRAINT,
"fk_ios_app_id", MOBILE_APP_BUNDLE_CONSTRAINT));
throw e;
}
} }
@Override @Override