Class POJOPersistenceProviderBase

    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      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.
      protected abstract java.lang.Object createQuery​(java.lang.String query)
      Creates a query, it can be Hibernate query or JPA query.
      protected abstract java.lang.Object find​(java.lang.Class pojoClass, java.io.Serializable key)
      Return the object associated to the sent key.
      java.lang.Object find​(MetaModel metaModel, java.lang.Object key)
      Find a object from its key object.
      java.lang.Object find​(MetaModel metaModel, java.util.Map keyValues)
      Find an object from its key in map format.
      protected java.lang.Object find​(MetaModel metaModel, java.util.Map keyValues, boolean useQueryForFind)  
      java.lang.Object findByAnyProperty​(MetaModel metaModel, java.util.Map keyValues)
      Find an object by any property (or properties).
      java.lang.Object findByKeyUsingQuery​(MetaModel metaModel, java.util.Map keyValues)  
      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.
      protected abstract java.lang.Object getUniqueResult​(java.lang.Object query)
      Returns the unique result of the sent query.
      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.
      protected abstract void persist​(java.lang.Object object)
      Marks the object as persistent.
      protected abstract void setParameterToQuery​(java.lang.Object query, java.lang.String name, java.lang.Object value)
      Sets the parameter to the indicated query.
      IPropertiesContainer toPropertiesContainer​(MetaModel metaModel, java.lang.Object o)
      Return an IPropertiesContainer to manage using introspection the sent object.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • POJOPersistenceProviderBase

        public POJOPersistenceProviderBase()
    • Method Detail

      • find

        protected abstract java.lang.Object find​(java.lang.Class pojoClass,
                                                 java.io.Serializable key)
        Return the object associated to the sent key.
      • persist

        protected abstract void persist​(java.lang.Object object)
        Marks the object as persistent.

      • createQuery

        protected abstract java.lang.Object createQuery​(java.lang.String query)
        Creates a query, it can be Hibernate query or JPA query.

      • setParameterToQuery

        protected abstract void setParameterToQuery​(java.lang.Object query,
                                                    java.lang.String name,
                                                    java.lang.Object value)
        Sets the parameter to the indicated query.

        The query is of the type returned by createQuery method.

      • getUniqueResult

        protected abstract java.lang.Object getUniqueResult​(java.lang.Object query)
        Returns the unique result of the sent query.

        It does not fail if there more than one match, in this case must returns the first one.

        Parameters:
        query - Of the type returned by createQuery method.
        Returns:
        Null if not result.
      • find

        public java.lang.Object find​(MetaModel metaModel,
                                     java.util.Map keyValues)
                              throws javax.ejb.FinderException
        Description copied from interface: IPersistenceProvider
        Find an object from its key in map format.

        Specified by:
        find in interface IPersistenceProvider
        Returns:
        Never null.
        Throws:
        javax.ejb.FinderException
      • find

        protected java.lang.Object find​(MetaModel metaModel,
                                        java.util.Map keyValues,
                                        boolean useQueryForFind)
                                 throws javax.ejb.FinderException
        Throws:
        javax.ejb.FinderException
      • find

        public java.lang.Object find​(MetaModel metaModel,
                                     java.lang.Object key)
                              throws javax.ejb.FinderException
        Description copied from interface: IPersistenceProvider
        Find a object from its key object.

        Specified by:
        find in interface IPersistenceProvider
        Returns:
        Never null.
        Throws:
        javax.ejb.FinderException
      • moveCollectionElement

        public void moveCollectionElement​(MetaModel metaModel,
                                          java.util.Map keyValues,
                                          java.lang.String collectionName,
                                          int from,
                                          int to)
                                   throws javax.ejb.FinderException,
                                          XavaException
        Description copied from interface: IPersistenceProvider
        Move an element in a collection.

        The collection must be sortable, in JPA it means to be a List with @OrderColumn.

        Specified by:
        moveCollectionElement in interface IPersistenceProvider
        Parameters:
        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.
        Throws:
        javax.ejb.ObjectNotFoundException - If object with this key does not exist
        javax.ejb.FinderException - Logic problem on find.
        XavaException - Any problem related to OpenXava. Rollback transaction.
      • getKey

        public java.lang.Object getKey​(MetaModel metaModel,
                                       java.util.Map keyValues)
                                throws XavaException
        Description copied from interface: IPersistenceProvider
        Return an object that can be used as primary key in model layer.

        For example, in EJB2 will be the Key class, in Hibernate can be the POJO class, and JPA ...

        Specified by:
        getKey in interface IPersistenceProvider
        Throws:
        XavaException
      • getContainer

        public java.lang.Object getContainer​(MetaModel metaModel,
                                             java.util.Map containerKeyValues)
                                      throws XavaException
        Description copied from interface: IPersistenceProvider
        Return the object that represents the container object.

        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.

        Specified by:
        getContainer in interface IPersistenceProvider
        Throws:
        XavaException
      • keyToMap

        public java.util.Map keyToMap​(MetaModel metaModel,
                                      java.lang.Object key)
                               throws XavaException
        Description copied from interface: IPersistenceProvider
        Returns a map that contains the value of primary key sent as object.

        The map must contain at least the primary key value, but it can contains more, the rest is ignored.

        Specified by:
        keyToMap in interface IPersistenceProvider
        Throws:
        XavaException
      • createAggregate

        public 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
        Description copied from interface: IPersistenceProvider
        Create an aggregate (saving it in database) from the data passed in map format.

        Specified by:
        createAggregate in interface IPersistenceProvider
        Parameters:
        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.
        Throws:
        javax.ejb.CreateException
        ValidationException
        java.rmi.RemoteException
        XavaException
      • findByAnyProperty

        public java.lang.Object findByAnyProperty​(MetaModel metaModel,
                                                  java.util.Map keyValues)
                                           throws javax.ejb.ObjectNotFoundException,
                                                  javax.ejb.FinderException,
                                                  XavaException
        Description copied from interface: IPersistenceProvider
        Find an object by any property (or properties).

        Returns the first object that match with the sent arguments (searchingValues).

        Specified by:
        findByAnyProperty in interface IPersistenceProvider
        Returns:
        Never null.
        Throws:
        javax.ejb.ObjectNotFoundException
        javax.ejb.FinderException
        XavaException
      • findByKeyUsingQuery

        public java.lang.Object findByKeyUsingQuery​(MetaModel metaModel,
                                                    java.util.Map keyValues)
                                             throws javax.ejb.ObjectNotFoundException,
                                                    javax.ejb.FinderException,
                                                    XavaException
        Throws:
        javax.ejb.ObjectNotFoundException
        javax.ejb.FinderException
        XavaException
      • getModelName

        public java.lang.String getModelName​(java.lang.Object modelObject)
        Description copied from interface: IPersistenceProvider
        Model name from the model object. It can be null. This value is useful when inheritance is used and the official model name does not match the real model name, so if inheritance does not apply it can be null.
        Specified by:
        getModelName in interface IPersistenceProvider
        Since:
        5.6