public interface IPersistenceProvider
extends java.io.Serializable
MapFacadeBean
.
For all methods you can use any RuntimeException as system exception
(this exception always abort the operation and rollback the transaction).
You can use PersistenceProviderException as RuntimeException, but this is
not mandatory. You can throw PersistenceException, JDOException, HibernateException,
EJBException or whatever RuntimeException your want.
Modifier and Type | Method and Description |
---|---|
void |
begin()
Mark the starting of the unit of work associated to this thread.
|
void |
commit()
Commit the work made by this persistent provider.
|
java.lang.Object |
create(MetaModel metaModel,
java.util.Map values)
Create a persistent object (saved in database) from the data passed in map format.
|
java.lang.Object |
createAggregate(MetaModel metaModel,
java.util.Map values,
MetaModel metaModelContainer,
java.lang.Object containerModel,
int number)
Create an aggregate (saving it in database) from the data passed in map format.
|
ITabProvider |
createTabProvider()
Provides tabular data.
|
java.lang.Object |
find(MetaModel metaModel,
java.util.Map keyValues)
Find an object from its key in map format.
|
java.lang.Object |
find(MetaModel metaModel,
java.lang.Object key)
Find a object from its key object.
|
java.lang.Object |
findByAnyProperty(MetaModel metaModel,
java.util.Map searchingValues)
Find an object by any property (or properties).
|
void |
flush()
Save in database all persistent data still in memory.
|
java.lang.Object |
getContainer(MetaModel metaModel,
java.util.Map containerKeyValues)
Return the object that represents the container object.
|
java.lang.Object |
getKey(MetaModel metaModel,
java.util.Map keyValues)
Return an object that can be used as primary key in model layer.
|
java.lang.String |
getModelName(java.lang.Object modelObject)
Model name from the model object.
|
java.util.Map |
keyToMap(MetaModel metaModel,
java.lang.Object key)
Returns a map that contains the value of primary key sent as object.
|
void |
moveCollectionElement(MetaModel metaModel,
java.util.Map keyValues,
java.lang.String collectionName,
int from,
int to)
Move an element in a collection.
|
void |
reassociate(java.lang.Object entity)
Reassociates a detached object to its persistent storage.
|
void |
refreshIfManaged(java.lang.Object object)
Refresh the state of the instance from the database,
overwriting changes made to the entity, if any.
|
void |
remove(MetaModel metaModel,
java.util.Map keyValues)
Remove the object from persistent storage.
|
void |
rollback()
Rollback the work made by this persistent provider.
|
IPropertiesContainer |
toPropertiesContainer(MetaModel metaModel,
java.lang.Object modelObject)
Return an IPropertiesContainer to manage using introspection the sent object.
|
java.lang.Object findByAnyProperty(MetaModel metaModel, java.util.Map searchingValues) throws javax.ejb.ObjectNotFoundException, javax.ejb.FinderException, XavaException
Returns the first object that match with the sent arguments (searchingValues
).
javax.ejb.ObjectNotFoundException
javax.ejb.FinderException
XavaException
java.lang.Object find(MetaModel metaModel, java.util.Map keyValues) throws javax.ejb.ObjectNotFoundException, javax.ejb.FinderException, XavaException
javax.ejb.ObjectNotFoundException
javax.ejb.FinderException
XavaException
java.lang.Object find(MetaModel metaModel, java.lang.Object key) throws javax.ejb.ObjectNotFoundException, javax.ejb.FinderException
javax.ejb.ObjectNotFoundException
javax.ejb.FinderException
IPropertiesContainer toPropertiesContainer(MetaModel metaModel, java.lang.Object modelObject) throws XavaException
XavaException
java.lang.Object create(MetaModel metaModel, java.util.Map values) throws javax.ejb.DuplicateKeyException, javax.ejb.CreateException, ValidationException, XavaException
javax.ejb.DuplicateKeyException
javax.ejb.CreateException
ValidationException
XavaException
void moveCollectionElement(MetaModel metaModel, java.util.Map keyValues, java.lang.String collectionName, int from, int to) throws javax.ejb.FinderException, XavaException
The collection must be sortable, in JPA it means to be a List with @OrderColumn.
metaModel
- of the entity that contains the collection. Not null.keyValues
- Key value of the container of the collection. Not null.collectionName
- Collection name of the container collection of element to move. Not null.from
- Original position of the element in the collection. Zero based.to
- Position in the collection where the element will be moved. Zero based.javax.ejb.ObjectNotFoundException
- If object with this key does not existjavax.ejb.FinderException
- Logic problem on find.XavaException
- Any problem related to OpenXava. Rollback transaction.java.lang.Object createAggregate(MetaModel metaModel, java.util.Map values, MetaModel metaModelContainer, java.lang.Object containerModel, int number) throws javax.ejb.CreateException, ValidationException, java.rmi.RemoteException, XavaException
metaModel
- of the aggregate to create.values
- Values to fill aggregate before save.metaModelContainer
- of model that will contain the aggregate.containerModel
- The object that will contain the new aggregate.number
- This number will be passed to calculator of type IAggregateOidCalculator, it can
use this number to calculate the oid. It's a simple counter.javax.ejb.CreateException
ValidationException
java.rmi.RemoteException
XavaException
java.lang.Object getKey(MetaModel metaModel, java.util.Map keyValues) throws XavaException
For example, in EJB2 will be the Key class, in Hibernate can be the POJO class, and JPA ...
XavaException
java.util.Map keyToMap(MetaModel metaModel, java.lang.Object key) throws XavaException
The map must contain at least the primary key value, but it can contains more, the rest is ignored.
XavaException
void remove(MetaModel metaModel, java.util.Map keyValues) throws javax.ejb.RemoveException, XavaException
javax.ejb.RemoveException
XavaException
void begin()
This method may be empty (for example in case of using CMT).
void commit()
This method may be empty (for example in case of using CMT).
void rollback()
This method may be empty (for example in case of using CMT).
void flush()
This method may be empty, because in some technologies has no sense.
void reassociate(java.lang.Object entity)
This is for use when an object is serialized using RMI/IIOP, and
need to reassociato to its persistent storage.
This method may be empty, because in some technologies has no sense.
java.lang.Object getContainer(MetaModel metaModel, java.util.Map containerKeyValues) throws XavaException
The container object apply only to aggregates, and it's the
object that containt to the aggregate.
It can be a POJO or key class, depends on the implementation.
XavaException
void refreshIfManaged(java.lang.Object object)
If the object is null or it's not managed simply do nothing,
but not fails.
This method may be empty, because in some technologies has no sense.
ITabProvider createTabProvider()
java.lang.String getModelName(java.lang.Object modelObject)