public ResourceIndexedSearchParams(ResourceTable theEntity) { if (theEntity.isParamsStringPopulated()) { stringParams.addAll(theEntity.getParamsString()); } if (theEntity.isParamsTokenPopulated()) { tokenParams.addAll(theEntity.getParamsToken()); } if (theEntity.isParamsNumberPopulated()) { numberParams.addAll(theEntity.getParamsNumber()); } if (theEntity.isParamsQuantityPopulated()) { quantityParams.addAll(theEntity.getParamsQuantity()); } if (theEntity.isParamsDatePopulated()) { dateParams.addAll(theEntity.getParamsDate()); } if (theEntity.isParamsUriPopulated()) { uriParams.addAll(theEntity.getParamsUri()); } if (theEntity.isParamsCoordsPopulated()) { coordsParams.addAll(theEntity.getParamsCoords()); } if (theEntity.isHasLinks()) { links.addAll(theEntity.getResourceLinks()); } if (theEntity.isParamsCompositeStringUniquePresent()) { compositeStringUniques.addAll(theEntity.getParamsCompositeStringUnique()); } }
public void storeCompositeStringUniques(ResourceIndexedSearchParams theParams, ResourceTable theEntity, ResourceIndexedSearchParams existingParams) { // Store composite string uniques if (myDaoConfig.isUniqueIndexesEnabled()) { for (ResourceIndexedCompositeStringUnique next : myDaoSearchParamSynchronizer.subtract(existingParams.compositeStringUniques, theParams.compositeStringUniques)) { ourLog.debug("Removing unique index: {}", next); myEntityManager.remove(next); theEntity.getParamsCompositeStringUnique().remove(next); } for (ResourceIndexedCompositeStringUnique next : myDaoSearchParamSynchronizer.subtract(theParams.compositeStringUniques, existingParams.compositeStringUniques)) { if (myDaoConfig.isUniqueIndexesCheckedBeforeSave()) { ResourceIndexedCompositeStringUnique existing = myResourceIndexedCompositeStringUniqueDao.findByQueryString(next.getIndexString()); if (existing != null) { String msg = myContext.getLocalizer().getMessage(BaseHapiFhirDao.class, "uniqueIndexConflictFailure", theEntity.getResourceType(), next.getIndexString(), existing.getResource().getIdDt().toUnqualifiedVersionless().getValue()); throw new PreconditionFailedException(msg); } } ourLog.debug("Persisting unique index: {}", next); myEntityManager.persist(next); } } } }
public void storeCompositeStringUniques(ResourceIndexedSearchParams theParams, ResourceTable theEntity, ResourceIndexedSearchParams existingParams) { // Store composite string uniques if (myDaoConfig.isUniqueIndexesEnabled()) { for (ResourceIndexedCompositeStringUnique next : myDaoSearchParamSynchronizer.subtract(existingParams.compositeStringUniques, theParams.compositeStringUniques)) { ourLog.debug("Removing unique index: {}", next); myEntityManager.remove(next); theEntity.getParamsCompositeStringUnique().remove(next); } for (ResourceIndexedCompositeStringUnique next : myDaoSearchParamSynchronizer.subtract(theParams.compositeStringUniques, existingParams.compositeStringUniques)) { if (myDaoConfig.isUniqueIndexesCheckedBeforeSave()) { ResourceIndexedCompositeStringUnique existing = myResourceIndexedCompositeStringUniqueDao.findByQueryString(next.getIndexString()); if (existing != null) { String msg = myContext.getLocalizer().getMessage(BaseHapiFhirDao.class, "uniqueIndexConflictFailure", theEntity.getResourceType(), next.getIndexString(), existing.getResource().getIdDt().toUnqualifiedVersionless().getValue()); throw new PreconditionFailedException(msg); } } ourLog.debug("Persisting unique index: {}", next); myEntityManager.persist(next); } } } }