Package com.axelor.db

Class JpaRepository<T extends Model>

    • Field Detail

      • modelClass

        protected Class<T extends Model> modelClass
    • Constructor Detail

      • JpaRepository

        protected JpaRepository​(Class<T> modelClass)
    • Method Detail

      • all

        public <U extends TQuery<U> all​(Class<U> type)
        Get the Query instance of the given type.
        Type Parameters:
        U - type of the model class
        Parameters:
        type - the subtype of the managed model class.
        Returns:
        instance of Query
      • create

        public T create​(Map<String,​Object> values)
        Description copied from interface: Repository
        Create a new instance of the domain model with the given default values.
        Specified by:
        create in interface Repository<T extends Model>
        Parameters:
        values - the default values
        Returns:
        an instance of the domain model managed by this repository
      • copy

        public T copy​(T entity,
                      boolean deep)
        Description copied from interface: Repository
        Create a duplicate copy of the given entity.

        In case of deep copy, one-to-many records are duplicated. Otherwise, one-to-many records will be skipped.
        Specified by:
        copy in interface Repository<T extends Model>
        Parameters:
        entity - the entity bean to copy
        deep - whether to create a deep copy
        Returns:
        a copy of the given entity
      • find

        public T find​(Long id)
        Description copied from interface: Repository
        Find by primary key.
        Specified by:
        find in interface Repository<T extends Model>
        Parameters:
        id - the record id
        Returns:
        a domain object found by the given id, null otherwise
      • findByIds

        public List<T> findByIds​(List<Long> ids)
        Description copied from interface: Repository
        Find multiple entities by their primary key.
        Specified by:
        findByIds in interface Repository<T extends Model>
        Parameters:
        ids - The ids to load
        Returns:
        list of all the matched records
      • save

        public T save​(T entity)
        Description copied from interface: Repository
        Save the given entity.

        Depending on the implementation, it may return same entity or a copy of it. For example JPA implementation may return a copy if the given entity can't be managed.

        Specified by:
        save in interface Repository<T extends Model>
        Parameters:
        entity - the entity object to save
        Returns:
        an instance of the entity with saved state
      • persist

        public void persist​(T entity)
        Make an entity managed and persistent.
        Parameters:
        entity - the entity instance
        See Also:
        EntityManager.persist(Object)
      • merge

        public T merge​(T entity)
        Merge the state of the given entity into the current persistence context.
        Parameters:
        entity - the entity instance
        Returns:
        the managed instance
        See Also:
        EntityManager.merge(Object)
      • remove

        public void remove​(T entity)
        Description copied from interface: Repository
        Remove the given entity.
        Specified by:
        remove in interface Repository<T extends Model>
        Parameters:
        entity - the entity object
      • refresh

        public void refresh​(T entity)
        Refresh the state of the instance from the database, overwriting changes made to the entity, if any.
        Specified by:
        refresh in interface Repository<T extends Model>
        Parameters:
        entity - the entity instance
        See Also:
        EntityManager.refresh(Object)
      • flush

        public void flush()
        Synchronize the persistence context to the underlying database.
        Specified by:
        flush in interface Repository<T extends Model>
        See Also:
        EntityManager.flush()
      • validate

        public Map<String,​Object> validate​(Map<String,​Object> json,
                                                 Map<String,​Object> context)
        Description copied from interface: Repository
        Validate the given json map before persisting.

        This method is called before the json map is converted to model object.

        Specified by:
        validate in interface Repository<T extends Model>
        Parameters:
        json - the json map to validate
        context - the context
        Returns:
        validated json map
      • populate

        public Map<String,​Object> populate​(Map<String,​Object> json,
                                                 Map<String,​Object> context)
        Description copied from interface: Repository
        Populate the given json map with additional data.

        This method is called before returning the json data as response.

        Specified by:
        populate in interface Repository<T extends Model>
        Parameters:
        json - the json map to populate
        context - the context
        Returns:
        the json map itself