Package org.hibernate.action.internal
Class UnresolvedEntityInsertActions
java.lang.Object
org.hibernate.action.internal.UnresolvedEntityInsertActions
Tracks unresolved entity insert actions.
An entity insert action is unresolved if the entity to be inserted has at least one non-nullable association with an unsaved transient entity, and the foreign key points to that unsaved transient entity.
These references must be resolved before an insert action can be executed.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
addUnresolvedEntityInsertAction
(AbstractEntityInsertAction insert, NonNullableTransientDependencies dependencies) Add an unresolved insert action.void
ThrowsPropertyValueException
if there are any unresolved entity insert actions that depend on non-nullable associations with a transient entity.void
clear()
Clear thisUnresolvedEntityInsertActions
.deserialize
(ObjectInputStream ois, EventSource session) Deserialize anUnresolvedEntityInsertActions
object.Returns the unresolved insert actions.boolean
isEmpty()
Returns true if there are no unresolved entity insert actions.resolveDependentActions
(Object managedEntity, SessionImplementor session) Resolve any dependencies onmanagedEntity
.void
Serialize thisUnresolvedEntityInsertActions
object.toString()
-
Constructor Details
-
UnresolvedEntityInsertActions
public UnresolvedEntityInsertActions()
-
-
Method Details
-
addUnresolvedEntityInsertAction
public void addUnresolvedEntityInsertAction(AbstractEntityInsertAction insert, NonNullableTransientDependencies dependencies) Add an unresolved insert action.- Parameters:
insert
- - unresolved insert action.dependencies
- - non-nullable transient dependencies (must be non-null and non-empty).- Throws:
IllegalArgumentException
- ifdependencies is null or empty
.
-
getDependentEntityInsertActions
Returns the unresolved insert actions.- Returns:
- the unresolved insert actions.
-
checkNoUnresolvedActionsAfterOperation
ThrowsPropertyValueException
if there are any unresolved entity insert actions that depend on non-nullable associations with a transient entity. This method should be called on completion of an operation (after all cascades are completed) that saves an entity.- Throws:
PropertyValueException
- if there are any unresolved entity insert actions;PropertyValueException.getEntityName()
andPropertyValueException.getPropertyName()
will return the entity name and property value for the first unresolved entity insert action.
-
isEmpty
public boolean isEmpty()Returns true if there are no unresolved entity insert actions.- Returns:
- true, if there are no unresolved entity insert actions; false, otherwise.
-
resolveDependentActions
public Set<AbstractEntityInsertAction> resolveDependentActions(Object managedEntity, SessionImplementor session) Resolve any dependencies onmanagedEntity
.- Parameters:
managedEntity
- - the managed entity namesession
- - the session- Returns:
- the insert actions that depended only on the specified entity.
- Throws:
IllegalArgumentException
- ifmanagedEntity
did not have managed or read-only status.
-
clear
public void clear()Clear thisUnresolvedEntityInsertActions
. -
toString
-
serialize
Serialize thisUnresolvedEntityInsertActions
object.- Parameters:
oos
- - the output stream- Throws:
IOException
- if there is an error writing this object to the output stream.
-
deserialize
public static UnresolvedEntityInsertActions deserialize(ObjectInputStream ois, EventSource session) throws IOException, ClassNotFoundException Deserialize anUnresolvedEntityInsertActions
object.- Parameters:
ois
- - the input stream.session
- - the session.- Returns:
- the deserialized
UnresolvedEntityInsertActions
object - Throws:
IOException
- if there is an error writing this object to the output stream.ClassNotFoundException
- if there is a class that cannot be loaded.
-