@Override
public void deleteEntity(DataRequest request, String entityETag,
EntityResponse response) throws ODataLibraryException, ODataApplicationException {
checkETag(entityETag);
UpdateResponse updateResponse = null;
try {
ODataSQLBuilder visitor = new ODataSQLBuilder(this.odata,
getClient().getMetadataStore(), this.prepared, false,
request.getODataRequest().getRawBaseUri(), this.serviceMetadata);
visitor.visit(request.getUriInfo());
Delete delete = visitor.delete();
updateResponse = getClient().executeUpdate(delete, visitor.getParameters());
} catch (SQLException e) {
throw new ODataApplicationException(e.getMessage(),
HttpStatusCode.INTERNAL_SERVER_ERROR.getStatusCode(),
Locale.getDefault(), e);
}
if (updateResponse != null && updateResponse.getUpdateCount() > 0) {
response.writeDeletedEntityOrReference();
}
else {
response.writeDeletedEntityOrReference();
}
}