public interface EntityManager
Mostly mimics the javax.persistence.EntityManager
interface and adds methods for working with fetch plans and
soft deletion.
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
NAME |
Modifier and Type | Method and Description |
---|---|
Query |
createNativeQuery()
Create an instance of Query for executing a native SQL statement, e.g., for update or delete.
|
Query |
createNativeQuery(java.lang.String sqlString)
Create an instance of Query for executing a native SQL statement, e.g., for update or delete.
|
<T extends io.jmix.core.Entity> |
createNativeQuery(java.lang.String sqlString,
java.lang.Class<T> resultClass)
Create an instance of Query for executing a native SQL statement and map its result to an entity.
|
Query |
createQuery()
Create an instance of Query for executing a Java Persistence query language statement.
|
Query |
createQuery(java.lang.String qlString)
Create an instance of Query for executing a Java Persistence query language statement.
|
<T> TypedQuery<T> |
createQuery(java.lang.String qlString,
java.lang.Class<T> resultClass)
Create a type-safe instance of Query for executing a Java Persistence query language statement.
|
void |
detach(io.jmix.core.Entity entity) |
void |
fetch(io.jmix.core.Entity entity,
io.jmix.core.FetchPlan fetchPlan)
Deprecated.
|
<T extends io.jmix.core.Entity,K> |
find(java.lang.Class<T> entityClass,
K id)
Find by primary key.
|
<T extends io.jmix.core.Entity,K> |
find(java.lang.Class<T> entityClass,
K id,
io.jmix.core.FetchPlan... fetchPlans)
Find by primary key.
|
<T extends io.jmix.core.Entity,K> |
find(java.lang.Class<T> entityClass,
K id,
java.lang.String... fetchPlanNames)
Find by primary key.
|
void |
flush()
Synchronize the persistence context to the underlying database.
|
java.sql.Connection |
getConnection() |
javax.persistence.EntityManager |
getDelegate() |
<T extends io.jmix.core.Entity,K> |
getReference(java.lang.Class<T> entityClass,
K id)
Get an instance, whose state may be lazily fetched.
If the requested instance does not exist in the database, the EntityNotFoundException is thrown when the instance state is first accessed. The application should not expect that the instance state will be available upon detachment, unless it was accessed by the application while the entity manager was open. |
boolean |
isSoftDeletion() |
<T extends io.jmix.core.Entity> |
merge(T entity)
Merge the state of the given entity into the current persistence context.
|
<T extends io.jmix.core.Entity> |
merge(T entity,
io.jmix.core.FetchPlan fetchPlan)
Deprecated.
|
<T extends io.jmix.core.Entity> |
merge(T entity,
java.lang.String fetchPlanName)
Deprecated.
|
void |
persist(io.jmix.core.Entity entity)
Make an instance managed and persistent.
|
<T extends io.jmix.core.Entity,K> |
reload(java.lang.Class<T> entityClass,
K id,
java.lang.String... fetchPlanNames)
Deprecated.
|
<T extends io.jmix.core.Entity> |
reload(T entity,
java.lang.String... fetchPlanNames)
Reload an entity from DB according to a combined fetch plan defined by the given array of fetch plans.
|
<T extends io.jmix.core.Entity> |
reloadNN(T entity,
java.lang.String... fetchPlanNames)
Reload an entity from DB according to a combined fetch plan defined by the given array of fetch plans.
|
void |
remove(io.jmix.core.Entity entity)
Remove the entity instance.
|
void |
setSoftDeletion(boolean softDeletion)
Set SoftDeletion mode for this EntityManager.
|
static final java.lang.String NAME
void persist(io.jmix.core.Entity entity)
entity
- entity instancejava.lang.IllegalArgumentException
- if not an entity<T extends io.jmix.core.Entity> T merge(T entity)
If a new or patch entity (see PersistenceHelper
methods) with non-null ID is passed to merge,
EntityManager loads the corresponding object from the database and updates it with non-null values
of attributes of the passed entity. If the object does not exist in the database, the passed entity is persisted
and returned.
entity
- entity instancejava.lang.IllegalArgumentException
- if instance is not an entity or is a removed entityEntityStates.isNew(Object)
,
EntityStates.makePatch(Object)
@Deprecated <T extends io.jmix.core.Entity> T merge(T entity, @Nullable io.jmix.core.FetchPlan fetchPlan)
io.jmix.core.sys.EntityFetcher#fetch(Entity, FetchPlan)
if needed.@Deprecated <T extends io.jmix.core.Entity> T merge(T entity, @Nullable java.lang.String fetchPlanName)
io.jmix.core.sys.EntityFetcher#fetch(Entity, String)
if needed.void remove(io.jmix.core.Entity entity)
isSoftDeletion()
flag.entity
- entity instancejava.lang.IllegalArgumentException
- if not an entity@Nullable <T extends io.jmix.core.Entity,K> T find(java.lang.Class<T> entityClass, K id)
entityClass
- entity classid
- entity idjava.lang.IllegalArgumentException
- if the first argument does not denote an entity type or the second argument
is not a valid type for that entity's primary key@Nullable <T extends io.jmix.core.Entity,K> T find(java.lang.Class<T> entityClass, K id, io.jmix.core.FetchPlan... fetchPlans)
Due to accepting fetch plans, this method actually executes a Query
which may lead to flushing of the
persistence context and invoking listeners on modified entities.
entityClass
- entity classid
- entity idfetchPlans
- array of fetch plansjava.lang.IllegalArgumentException
- if the first argument does not denote an entity type or the second argument
is not a valid type for that entity's primary key@Nullable <T extends io.jmix.core.Entity,K> T find(java.lang.Class<T> entityClass, K id, java.lang.String... fetchPlanNames)
Due to accepting fetch plans, this method actually executes a Query
which may lead to flushing of the
persistence context and invoking listeners on modified entities.
entityClass
- entity classid
- entity idfetchPlanNames
- array of fetch plan names for this entityjava.lang.IllegalArgumentException
- if the first argument does not denote an entity type or the second argument
is not a valid type for that entity's primary key<T extends io.jmix.core.Entity,K> T getReference(java.lang.Class<T> entityClass, K id)
entityClass
- entity classid
- entity idjava.lang.IllegalArgumentException
- if the first argument does not denote an entity type or the second argument
is not a valid type for that entity's primary keyjavax.persistence.EntityNotFoundException
- if the entity state cannot be accessedQuery createQuery()
Query createQuery(java.lang.String qlString)
qlString
- a Java Persistence query string<T> TypedQuery<T> createQuery(java.lang.String qlString, java.lang.Class<T> resultClass)
qlString
- a Java Persistence query stringresultClass
- expected result classQuery createNativeQuery()
Query createNativeQuery(java.lang.String sqlString)
sqlString
- a native SQL query string<T extends io.jmix.core.Entity> TypedQuery<T> createNativeQuery(java.lang.String sqlString, java.lang.Class<T> resultClass)
sqlString
- a native SQL query stringresultClass
- expected result class@Nullable <T extends io.jmix.core.Entity> T reload(T entity, java.lang.String... fetchPlanNames)
entity
- entity instance to reloadfetchPlanNames
- array of fetch plan names<T extends io.jmix.core.Entity> T reloadNN(T entity, java.lang.String... fetchPlanNames)
entity
- entity instance to reloadfetchPlanNames
- array of fetch plan namesjavax.persistence.EntityNotFoundException
- if the entity has been deletedvoid flush()
void detach(io.jmix.core.Entity entity)
boolean isSoftDeletion()
void setSoftDeletion(boolean softDeletion)
softDeletion
- modejava.sql.Connection getConnection()
Don't close this connection after use, it will be automatically closed on transaction end.
javax.persistence.EntityManager getDelegate()
@Deprecated void fetch(io.jmix.core.Entity entity, io.jmix.core.FetchPlan fetchPlan)
@Deprecated @Nullable <T extends io.jmix.core.Entity,K> T reload(java.lang.Class<T> entityClass, K id, java.lang.String... fetchPlanNames)
find(Class, Object, String...)