Interface IUpdate
-
- All Superinterfaces:
ServiceInterface
public interface IUpdate extends ServiceInterface
Provides methods for directly updating object graphs. IUpdate is the lowest level (level-1) interface which may make changes (INSERT, UPDATE, DELETE) to the database. All other methods of changing the database may leave it in an inconsistent state.All the save* methods act recursively on the entire object graph, replacing placeholders and details where necessary, and then "merging" the final graph. This means that the objects that are passed into IUpdate.save* methods are copied over to new instances which are then returned. The original objects should be discarded.
saveAndReturnIds(IObject[])
behaves slightly differently in that it does not handle object modifications. The graph of objects passed in can consist ONLY if either newly created objects without ids or of unloaded objects with ids. Note: The ids of the saved values may not be in order. This is caused by persistence-by-transitivity. Hibernate may detect an item later in the array if they are interconnected and therefore choose to save it first.All methods throw
ValidationException
if the input objects do not pass validation, andOptimisticLockException
if the version of a given has already been incremented.- Since:
- OMERO3.0
- See Also:
Validation
,Details
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
deleteObject(ome.model.IObject row)
Deletes a single entity.void
indexObject(ome.model.IObject row)
Initiates full-text indexing for the given object.ome.model.IObject[]
saveAndReturnArray(ome.model.IObject[] graph)
java.util.List<java.lang.Long>
saveAndReturnIds(ome.model.IObject[] objects)
Logic differs from other methods.<T extends ome.model.IObject>
TsaveAndReturnObject(T graph)
void
saveArray(ome.model.IObject[] graph)
void
saveCollection(java.util.Collection<ome.model.IObject> graph)
void
saveObject(ome.model.IObject graph)
-
-
-
Method Detail
-
saveAndReturnIds
java.util.List<java.lang.Long> saveAndReturnIds(ome.model.IObject[] objects)
Logic differs from other methods. See class description- See Also:
IUpdate
-
saveCollection
void saveCollection(java.util.Collection<ome.model.IObject> graph)
- See Also:
IUpdate
-
saveObject
void saveObject(ome.model.IObject graph)
- See Also:
IUpdate
-
saveArray
void saveArray(ome.model.IObject[] graph)
- See Also:
IUpdate
-
saveAndReturnObject
<T extends ome.model.IObject> T saveAndReturnObject(T graph)
- See Also:
IUpdate
-
saveAndReturnArray
ome.model.IObject[] saveAndReturnArray(ome.model.IObject[] graph)
- See Also:
IUpdate
-
deleteObject
void deleteObject(ome.model.IObject row) throws ome.conditions.ValidationException
Deletes a single entity. Unlike the other IUpdate methods, deleteObject does not propagate to related entities (e.g. foreign key relationships) and so calls to deleteObject must be properly ordered. For example, if you would like to delete a FileAnnotation along with the linked OriginalFile, it is necessary to first call deleteObject(OriginalFile) and then deleteObject(FileAnnotation). Instead, you may look to use the more advanced method provided inIDelete
which provide support for deleting entire graphs of objects in the correct order.- Parameters:
row
- a persistentIObject
to be deleted.- Throws:
ome.conditions.ValidationException
- if the row is locked, has foreign key constraints, or is otherwise marked un-deletable.
-
indexObject
void indexObject(ome.model.IObject row) throws ome.conditions.ValidationException
Initiates full-text indexing for the given object. This may have to wait for the currentome.services.fulltext.FullTextThread
to finish. Can only be executed by an admin. Other users must wait for the backgroundThread
to complete.- Parameters:
row
- a persistentIObject
to be deleted- Throws:
ome.conditions.ValidationException
- if the object does not exist or is nul
-
-