# Enum ImplicitTransactionManagementPolicy (5.0.3)

    public enum ImplicitTransactionManagementPolicy extends Enum<ImplicitTransactionManagementPolicy>

Describes the various policies the datastore can follow for implicit transaction management. When
deciding which policy to use, keep the following in mind: The datastore will automatically retry
operations that fail due to concurrent updates to the same entity group if the operation is not
part of a transaction. The datastore will not retry operations that fail due to concurrent
updates to the same entity group if the operation is part of a transaction, and will instead
immediately throw a ConcurrentModificationException. If your application needs to perform
any sort of intelligent merging when concurrent attempts are made to update the same entity group
you probably want [#AUTO](https://docs.cloud.google.com/appengine/docs/standard/java-gen2/reference/services/bundled/latest/com.google.appengine.api.datastore.ImplicitTransactionManagementPolicy#com_google_appengine_api_datastore_ImplicitTransactionManagementPolicy_AUTO), otherwise [#NONE](https://docs.cloud.google.com/appengine/docs/standard/java-gen2/reference/services/bundled/latest/com.google.appengine.api.datastore.ImplicitTransactionManagementPolicy#com_google_appengine_api_datastore_ImplicitTransactionManagementPolicy_NONE) is probably acceptable.

See [DatastoreService](https://docs.cloud.google.com/appengine/docs/standard/java-gen2/reference/services/bundled/latest/com.google.appengine.api.datastore.DatastoreService) for a list of operations that perform implicit transaction
management.

## Inherited Members

[Enum.\<T\>valueOf(Class\<T\>,String)](https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html#valueOf-java.lang.Class-java.lang.String-) [Enum.clone()](https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html#clone--) [Enum.compareTo(E)](https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html#compareTo-E-) [Enum.describeConstable()](https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html#describeConstable--) [Enum.equals(Object)](https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html#equals-java.lang.Object-) [Enum.finalize()](https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html#finalize--) [Enum.getDeclaringClass()](https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html#getDeclaringClass--) [Enum.hashCode()](https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html#hashCode--) [Enum.name()](https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html#name--) [Enum.ordinal()](https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html#ordinal--) [Enum.toString()](https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html#toString--) [Object.getClass()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#getClass--) [Object.notify()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notify--) [Object.notifyAll()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notifyAll--) [Object.wait()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait--) [Object.wait(long)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-) [Object.wait(long,int)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-int-)

| ## Static Fields ||
|---|---|
| **Name** | **Description** |
| `AUTO` | If a current transaction exists, use it, otherwise create one. The transaction will be committed before the method returns if the datastore operation completes successfully and rolled back if the datastore operation does not complete successfully. No matter the type or quantity of entities provided, only one transaction will be created. This means that if you pass entities that belong to multiple entity groups into one of these methods and you have this policy enabled, you will receive an exception because transactions do not function across entity groups. |
| `NONE` | If a current transaction exists, use it, otherwise execute without a transaction. |

| ## Static Methods ||
|---|---|
| **Name** | **Description** |
| `valueOf(String name)` |   |
| `values()` |   |