@Override public MetadataXCsw addDatasetToCSW(final int serviceID, final int datasetID) { final Metadata metadata = dsl.select() .from(METADATA) .where(METADATA.DATASET_ID.eq(datasetID)) .fetchOneInto(Metadata.class); if (metadata != null) { final MetadataXCsw dxc = dsl.select() .from(METADATA_X_CSW) .where(METADATA_X_CSW.CSW_ID.eq(serviceID)) .and(METADATA_X_CSW.METADATA_ID.eq(metadata.getId())) .fetchOneInto(MetadataXCsw.class); if (dxc == null) { MetadataXCswRecord newRecord = dsl.newRecord(METADATA_X_CSW); newRecord.setCswId(serviceID); newRecord.setMetadataId(metadata.getId()); newRecord.store(); return newRecord.into(MetadataXCsw.class); } return dxc; } return null; }
@Override @Transactional(propagation = Propagation.MANDATORY) public void removeDatasetFromAllCSW(int datasetID) { final Metadata metadata = dsl.select() .from(METADATA) .where(METADATA.DATASET_ID.eq(datasetID)) .fetchOneInto(Metadata.class); if (metadata != null) { dsl.delete(METADATA_X_CSW).where(METADATA_X_CSW.METADATA_ID.eq(metadata.getId())).execute(); } }