alvinalexander.com | career | drupal | java | mac | mysql | perl | scala | uml | unix  

Hibernate example source code file (CrossTypeRevisionChangesReader.java)

This example Hibernate source code file (CrossTypeRevisionChangesReader.java) is included in the DevDaily.com "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.

Java - Hibernate tags/keywords

class, crosstyperevisionchangesreader, illegalargumentexception, illegalargumentexception, illegalstateexception, illegalstateexception, list, list, map, map, revisiontype, set, util

The Hibernate CrossTypeRevisionChangesReader.java source code

package org.hibernate.envers;

import org.hibernate.envers.tools.Pair;

import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * Queries that allow retrieving snapshots of all entities (regardless of their particular type) changed in the given
 * revision. Note that this API can be legally used only when default mechanism of tracking modified entity names
 * is enabled.
 * @author Lukasz Antoniak (lukasz dot antoniak at gmail dot com)
 */
public interface CrossTypeRevisionChangesReader {
    /**
     * Find all entities changed (added, updated and removed) in a given revision. Executes <i>n+1 SQL queries,
     * where <i>n is a number of different entity classes modified within specified revision.
     * @param revision Revision number.
     * @return Snapshots of all audited entities changed in a given revision.
     * @throws IllegalStateException If the associated entity manager is closed.
     * @throws IllegalArgumentException If a revision number is <code>null, less or equal to 0.
     */
    public List<Object> findEntities(Number revision) throws IllegalStateException, IllegalArgumentException;

    /**
     * Find all entities changed (added, updated or removed) in a given revision. Executes <i>n+1 SQL queries,
     * where <i>n is a number of different entity classes modified within specified revision.
     * @param revision Revision number.
     * @param revisionType Type of modification.
     * @return Snapshots of all audited entities changed in a given revision and filtered by modification type.
     * @throws IllegalStateException If the associated entity manager is closed.
     * @throws IllegalArgumentException If a revision number is {@code null}, less or equal to 0.
     */
    public List<Object> findEntities(Number revision, RevisionType revisionType) throws IllegalStateException,
                                                                                        IllegalArgumentException;

    /**
     * Find all entities changed (added, updated and removed) in a given revision grouped by modification type.
     * Executes <i>mn+1 SQL queries, where:
     * <ul>
     * <li>n - number of different entity classes modified within specified revision.
     * <li>m - number of different revision types. See {@link RevisionType} enum.
     * </ul>
     * @param revision Revision number.
     * @return Map containing lists of entity snapshots grouped by modification operation (e.g. addition, update, removal).
     * @throws IllegalStateException If the associated entity manager is closed.
     * @throws IllegalArgumentException If a revision number is {@code null}, less or equal to 0.
     */
    public Map<RevisionType, List findEntitiesGroupByRevisionType(Number revision) throws IllegalStateException,
                                                                                                   IllegalArgumentException;

    /**
     * Returns set of entity names and corresponding Java classes modified in a given revision.
     * @param revision Revision number.
     * @return Set of entity names and corresponding Java classes modified in a given revision.
     * @throws IllegalStateException If the associated entity manager is closed.
     * @throws IllegalArgumentException If a revision number is {@code null}, less or equal to 0.
     */
    public Set<Pair findEntityTypes(Number revision) throws IllegalStateException, IllegalArgumentException;
}

Other Hibernate examples (source code examples)

Here is a short list of links related to this Hibernate CrossTypeRevisionChangesReader.java source code file:

... this post is sponsored by my books ...

#1 New Release!

FP Best Seller

 

new blog posts

 

Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.

A percentage of advertising revenue from
pages under the /java/jwarehouse URI on this website is
paid back to open source projects.