@Override public SDataInstance getDataInstance( final String dataName, final long containerId, final String containerType) throws SDataInstanceException { NullCheckingUtil.checkArgsNotNull(dataName, containerType); final SDataInstanceBuilderFactory fact = BuilderFactory.get(SDataInstanceBuilderFactory.class); final Map<String, Object> paraMap = CollectionUtil.buildSimpleMap(fact.getNameKey(), dataName); paraMap.put(fact.getContainerIdKey(), containerId); paraMap.put(fact.getContainerTypeKey(), containerType); try { final SDataInstance dataInstance = persistenceRead.selectOne( new SelectOneDescriptor<SDataInstance>( "getDataInstancesByNameAndContainer", paraMap, SDataInstance.class, SDataInstance.class)); // conditions :and not or if (dataInstance == null) { throw new SDataInstanceException("No data instance found"); } return dataInstance; } catch (final SBonitaReadException e) { throw new SDataInstanceException( "Unable to check if a data instance already exists: " + e.getMessage(), e); } }