当前位置: 首页>>代码示例>>Java>>正文


Java AuditEntity类代码示例

本文整理汇总了Java中org.hibernate.envers.query.AuditEntity的典型用法代码示例。如果您正苦于以下问题:Java AuditEntity类的具体用法?Java AuditEntity怎么用?Java AuditEntity使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


AuditEntity类属于org.hibernate.envers.query包,在下文中一共展示了AuditEntity类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: process

import org.hibernate.envers.query.AuditEntity; //导入依赖的package包/类
@Override
protected Object process(HttpServletRequest req, WxSession session) throws Exception {
    int first;
    int limit;
    Date start;
    Date end;
    first = req.getParameter("first") == null ? 0 : Integer.parseInt(req.getParameter("first"));
    limit = req.getParameter("limit") == null ? 20 : Integer.parseInt(req.getParameter("limit"));
    start = req.getParameter("start") == null ? getToday() : dateFormat.parse(req.getParameter("start"));
    end = req.getParameter("end") == null ? getToday() : dateFormat.parse(req.getParameter("end"));
    end = DateUtils.addDays(end, 1);
    try (Session s = SQLCore.sf.openSession()) {
        AuditReader reader = TableTicket.getAuditReader(s);
        return reader.createQuery()
                .forRevisionsOfEntity(Ticket.class, false, true)
                .addOrder(AuditEntity.revisionNumber().desc())
                .add(AuditEntity.revisionProperty("timestamp").between(start.getTime(), end.getTime()))
                .setFirstResult(first)
                .setMaxResults(limit)
                .getResultList();
    }
}
 
开发者ID:ZSCNetSupportDept,项目名称:WechatTicketSystem,代码行数:23,代码来源:TicketLog.java

示例2: getPreviousStateForProduct

import org.hibernate.envers.query.AuditEntity; //导入依赖的package包/类
/**
 * Retrieve the previous state of a given {@link ProductEntity} which was
 * modified earlier than the given modified date.
 * 
 * @param prodId
 *            the id of the {@link ProductEntity}
 * @param revNumber
 *            the revision number when the productDetails was modified
 * @return a {@link ProductEntity} object
 */
@Transactional
public ProductEntity getPreviousStateForProduct(final Long prodId,
                                                final int revNumber) {
    /**
     * Get only the most recent {@link ProductEntity} information from the
     * audit tables where the wasChecked property is true and the
     * modifiedDate is less than the one given as parameter for the given
     * product details object
     */
    final AuditQuery query = this.getAuditReader()
                                 .createQuery()
                                 .forRevisionsOfEntity(ProductEntity.class,
                                                       true,
                                                       true)
                                 .addOrder(AuditEntity.property("modified")
                                                      .desc())
                                 .add(AuditEntity.id().eq(prodId))
                                 .add(AuditEntity.property("wasChecked")
                                                 .eq(Boolean.TRUE))
                                 .add(AuditEntity.revisionNumber()
                                                 .lt(Integer.valueOf(revNumber)))
                                 .setMaxResults(1);

    final List<ProductEntity> resultList = query.getResultList();

    if (resultList != null && resultList.size() > 0) {
        return resultList.get(0);
    }

    return null;

}
 
开发者ID:zandrei,项目名称:hibernate-envers-demo,代码行数:43,代码来源:ProductDAO.java

示例3: listCustomerRevisions

import org.hibernate.envers.query.AuditEntity; //导入依赖的package包/类
@Transactional(readOnly = true)
public List<CustomerHistory> listCustomerRevisions(Long customerId) {

    // Create the Audit Reader. It uses the EntityManager, which will be opened when
    // starting the new Transation and closed when the Transaction finishes.
    AuditReader auditReader = AuditReaderFactory.get(entityManager);

    // Create the Query:
    AuditQuery auditQuery = auditReader.createQuery()
            .forRevisionsOfEntity(Customer.class, false, true)
            .add(AuditEntity.id().eq(customerId));

    // We don't operate on the untyped Results, but cast them into a List of AuditQueryResult:
    return AuditQueryUtils.getAuditQueryResults(auditQuery, Customer.class).stream()
            // Turn into the CustomerHistory Domain Object:
            .map(x -> getCustomerHistory(x))
            // And collect the Results:
            .collect(Collectors.toList());
}
 
开发者ID:bytefish,项目名称:VersioningWithEnvers,代码行数:20,代码来源:CustomerHistoryRepository.java

示例4: getLatestChangeForItemWithID

import org.hibernate.envers.query.AuditEntity; //导入依赖的package包/类
@Transactional
public Object[] getLatestChangeForItemWithID(final Long id,
                                             final Class<?> itemClass) {
    final AuditQuery query = this.getAuditReader()
                                 .createQuery()
                                 .forRevisionsOfEntity(itemClass,
                                                       false,
                                                       true)
                                 .addOrder(AuditEntity.property("modified")
                                                      .desc())
                                 .add(AuditEntity.id().eq(id))
                                 .setMaxResults(1);

    final List<Object[]> resultList = query.getResultList();

    if (resultList != null && resultList.size() > 0) {
        return resultList.get(0);
    }
    return null;
}
 
开发者ID:zandrei,项目名称:hibernate-envers-demo,代码行数:21,代码来源:CommonDAO.java

示例5: getDelta

import org.hibernate.envers.query.AuditEntity; //导入依赖的package包/类
/**
 * @param clazz
 * @param lastId
 * @return
 */
@SuppressWarnings("unchecked")
private <T extends Shareable> Bundle<T> getDelta(Class<T> clazz,
		String lastId) {

	AuditReader ar = AuditReaderFactory.get(getSession());
	Number number = getLastId(clazz, lastId);
	List<Object[]> entities = ar.createQuery()
			.forRevisionsOfEntity(clazz, false, false)
			.add(AuditEntity.revisionNumber().gt(number)).getResultList();

	Bundle<T> bundle = new Bundle<T>(lastId);
	for (Object[] o : entities) {
		if (o == null) {
			continue;
		}
		bundle.add((T) notNull(o[0]), notNull(getId(o[1])));
	}
	return bundle;
}
 
开发者ID:fpuna-cia,项目名称:karaku,代码行数:25,代码来源:EnversReplicationProvider.java

示例6: isUnknown

import org.hibernate.envers.query.AuditEntity; //导入依赖的package包/类
/**
 * @param clazz
 * @param reader
 * @param lastId
 * @return
 */
@SuppressWarnings("unchecked")
private <T extends Shareable> boolean isUnknown(Class<T> clazz,
		String lastId) {

	if (Bundle.FIRST_CHANGE.equals(lastId)) {
		return false;
	}

	AuditReader reader = AuditReaderFactory.get(getSession());
	List<T> entitiesAtRevision = reader.createQuery()
			.forRevisionsOfEntity(clazz, false, false)
			.add(AuditEntity.revisionNumber().eq(getLastId(clazz, lastId)))
			.getResultList();
	return (entitiesAtRevision == null) || entitiesAtRevision.isEmpty();
}
 
开发者ID:fpuna-cia,项目名称:karaku,代码行数:22,代码来源:EnversReplicationProvider.java

示例7: getAll

import org.hibernate.envers.query.AuditEntity; //导入依赖的package包/类
@Nonnull
private <T extends Shareable> Bundle<T> getAll(@Nonnull Class<T> clazz) {

	AuditReader reader = AuditReaderFactory.get(getSession());
	Number prior = (Number) reader.createQuery()
			.forRevisionsOfEntity(clazz, false, true)
			.addProjection(AuditEntity.revisionNumber().max())
			.getSingleResult();

	String lastId;
	// previous revision, la actual no será persistida.
	if (prior == null) {
		lastId = Bundle.FIRST_CHANGE;
	} else {
		lastId = String.valueOf(prior);
	}
	return firstChangeProviderHandler.getAll(clazz, notNull(lastId));

}
 
开发者ID:fpuna-cia,项目名称:karaku,代码行数:20,代码来源:EnversReplicationProvider.java

示例8: buildInsertAuditQuery

import org.hibernate.envers.query.AuditEntity; //导入依赖的package包/类
/**
 * Builds the query to insert new {@link com.box.l10n.mojito.entity.TMTextUnitCurrentVariant}s
 * as they were at the rollback date.
 *
 * @param rollbackDateTime Date at which the {@link TMTextUnitCurrentVariant}s will be rollbacked to
 * @param tmId             ID of the TM the {@link TMTextUnitCurrentVariant}s to be rolled back should belong to
 * @param extraParameters  Extra parameters to filter what to rollback
 * @return The insert audit query
 */
protected AuditQuery buildInsertAuditQuery(DateTime rollbackDateTime, Long tmId, CurrentVariantRollbackParameters extraParameters) {

    logger.trace("Building the insert tmTextUnitCurrentVariants audit query");

    AuditReader auditReader = AuditReaderFactory.get(entityManager);
    Number revNumberAtDate = auditReader.getRevisionNumberForDate(rollbackDateTime.toDate());

    AuditQuery auditQuery = auditReader.createQuery()
            .forEntitiesAtRevision(TMTextUnitCurrentVariant.class, TMTextUnitCurrentVariant.class.getName(), revNumberAtDate, true)
            .add(AuditEntity.property("tm_id").eq(tmId));

    List<Long> localeIdsToRollback = extraParameters.getLocaleIds();
    if (localeIdsToRollback != null && !localeIdsToRollback.isEmpty()) {
        // Using "in" does not work with relatedId() nor property() so using loop instead
        for (Long localeIdToRollback : localeIdsToRollback) {
            auditQuery.add(AuditEntity.relatedId("locale").eq(localeIdToRollback));
        }
    }

    List<Long> tmTextUnitIdsToRollback = extraParameters.getTmTextUnitIds();
    if (tmTextUnitIdsToRollback != null && !tmTextUnitIdsToRollback.isEmpty()) {
        // Using "in" does not work with relatedId() nor property() so using loop instead
        for (Long tmTextUnitIdToRollback : tmTextUnitIdsToRollback) {
            auditQuery.add(AuditEntity.relatedId("tmTextUnit").eq(tmTextUnitIdToRollback));
        }
    }

    return auditQuery;
}
 
开发者ID:box,项目名称:mojito,代码行数:39,代码来源:CurrentVariantRollbackService.java

示例9: track

import org.hibernate.envers.query.AuditEntity; //导入依赖的package包/类
@SuppressWarnings("unchecked")
public static List<Object[]> track(int tid) {
    try (Session s = SQLCore.sf.openSession()) {
        AuditReader reader = getAuditReader(s);
        return reader.createQuery()
                .forRevisionsOfEntity(Ticket.class, false, true)
                .addOrder(AuditEntity.revisionNumber().desc())
                .add(AuditEntity.id().eq(tid))
                .getResultList()
                ;
    }
}
 
开发者ID:ZSCNetSupportDept,项目名称:WechatTicketSystem,代码行数:13,代码来源:TableTicket.java

示例10: getPreviousStateForProductDetails

import org.hibernate.envers.query.AuditEntity; //导入依赖的package包/类
/**
 * Retrieve the previous state of a given {@link ProductDetailsEntity} which
 * was modified earlier than the given modified date.
 * 
 * @param prodDetailsId
 *            the id of the {@link ProductDetailsEntity}
 * @param modifiedDate
 *            the date when the productDetails was modified
 * @return a {@link ProductDetailsEntity} object
 */
@Transactional
public ProductDetailsEntity
        getPreviousStateForProductDetails(final Long prodDetailsId,
                                          final int revNumber) {
    /**
     * Get only the most recent {@link ProductDetailsEntity} information
     * from the audit tables where the wasChecked property is true and the
     * modifiedDate is less than the one given as parameter for the given
     * product details object
     */
    final AuditQuery query = this.getAuditReader()
                                 .createQuery()
                                 .forRevisionsOfEntity(ProductDetailsEntity.class,
                                                       true,
                                                       true)
                                 .addOrder(AuditEntity.property("modified")
                                                      .desc())
                                 .add(AuditEntity.id().eq(prodDetailsId))
                                 .add(AuditEntity.property("wasChecked")
                                                 .eq(Boolean.TRUE))
                                 .add(AuditEntity.revisionNumber()
                                                 .lt(Integer.valueOf(revNumber)))
                                 .setMaxResults(1);

    final List<ProductDetailsEntity> resultList = query.getResultList();

    if (resultList != null && resultList.size() > 0) {
        return resultList.get(0);
    }

    return null;
}
 
开发者ID:zandrei,项目名称:hibernate-envers-demo,代码行数:43,代码来源:ProductDetailsDAO.java

示例11: getProjectRevisions

import org.hibernate.envers.query.AuditEntity; //导入依赖的package包/类
public List getProjectRevisions(String property) {
	final Session s = openSession();
	final AuditReader ar = AuditReaderFactory.get( s );
	return ar.createQuery()
		    .forRevisionsOfEntity(Project.class, false, true)
		    .add(AuditEntity.property(property).hasChanged())
		    .getResultList();
}
 
开发者ID:brmeyer,项目名称:HibernateDemos,代码行数:9,代码来源:EnversDemo.java

示例12: getAllProductsWaitingForApproval

import org.hibernate.envers.query.AuditEntity; //导入依赖的package包/类
/**
 * Get all products that need to be shown to the checker for approval.
 * 
 * @return a list of Object[]. Each element will be an Object[3] array with
 *         the following items: Object[0] - the {@link ProductEntity} at a
 *         revision ( greater or equal than the one given as parameter)
 *         Object[1] a {@link DefaultRevisionEntity} Object[2] a
 *         {@link RevisionType} object containing information about the
 *         revision
 */
@Transactional
public List<Object[]> getAllProductsWaitingForApproval() {
    /**
     * Get all distinct {@link ProductEntity} objects where the wasChecked
     * property is false order by modified descending
     */
    final AuditQuery query = this.getAuditReader()
                                 .createQuery()
                                 .forRevisionsOfEntity(ProductEntity.class,
                                                       false,
                                                       true)
                                 .addOrder(AuditEntity.property("modified")
                                                      .desc())
                                 .add(AuditEntity.revisionNumber()
                                                 .maximize()
                                                 .computeAggregationInInstanceContext())
                                 .add(AuditEntity.property("wasChecked")
                                                 .eq(Boolean.FALSE))
                                 .add(AuditEntity.revisionType()
                                                 .ne(RevisionType.DEL));

    final List<Object[]> resultList = query.getResultList();

    final List<Object[]> result = new ArrayList<>();

    /**
     * for each "changed" object found in the db we need to check if there
     * is a newer revision of it in which the {@link ProductEntity} was
     * approved (wasChecked = true) because we do not need to retrieve
     * already checked objects to the checker.
     */
    for (final Object[] change : resultList) {
        final ProductEntity pe = (ProductEntity) change[0];
        final AuditQuery queryForWasCheckedTrue = this.getAuditReader()
                                                      .createQuery()
                                                      .forRevisionsOfEntity(ProductEntity.class,
                                                                            false,
                                                                            true)
                                                      .addOrder(AuditEntity.property("modified")
                                                                           .desc())
                                                      .add(AuditEntity.id()
                                                                      .eq(pe.getId()))
                                                      .add(AuditEntity.property("wasChecked")
                                                                      .eq(Boolean.TRUE));

        if (pe.getModified() != null) {
            queryForWasCheckedTrue.add(AuditEntity.property("modified")
                                                  .gt(pe.getModified()));
        }

        try {
            final Object[] trueWasChecked = (Object[]) queryForWasCheckedTrue.getSingleResult();
        }
        catch (final NoResultException ex) {
            // there is no newer revision where the current product has
            // wasChecked property == true
            result.add(change);
        }

    }

    return result;
}
 
开发者ID:zandrei,项目名称:hibernate-envers-demo,代码行数:74,代码来源:ProductDAO.java

示例13: getConfiguration

import org.hibernate.envers.query.AuditEntity; //导入依赖的package包/类
/**
 * Gets the configuration.
 * 
 * @param clusterId
 *            the cluster id
 * @return the configuration
 */
public List getConfiguration(Long clusterId) {
	try {
		AuditReader reader = AuditReaderFactory.get(HibernateUtils
				.getEntityManager());
		AuditQuery query = reader.createQuery().forRevisionsOfEntity(
				Configuration.class, false, true);

		// filter results besed on cluster id.
		query.add(AuditEntity.property(
				com.impetus.ankush2.constant.Constant.Keys.CLUSTERID).eq(
				clusterId));
		query.addOrder(AuditEntity.revisionProperty(
				com.impetus.ankush2.constant.Constant.Keys.TIMESTAMP)
				.desc());

		// Getting Result list.
		List list = query.getResultList();

		// Creating List Object.
		List result = new ArrayList();
		for (Object object : list) {
			Object[] obj = (Object[]) object;
			Map map = new HashMap();
			// Mapping Revision Entity.
			DefaultRevisionEntity ri = (DefaultRevisionEntity) obj[1];
			map.putAll(JsonMapperUtil.mapFromObject(obj[0]));
			map.put(com.impetus.ankush2.constant.Constant.Keys.DATE,
					ri.getRevisionDate());
			map.put(com.impetus.ankush2.constant.Constant.Keys.REVISIONID,
					ri.getId());
			map.put(com.impetus.ankush2.constant.Constant.Keys.TYPE, obj[2]);
			result.add(map);
		}
		return result;
	} catch (Exception e) {
		LOG.error(e.getMessage(), e);
	}
	return null;

}
 
开发者ID:Impetus,项目名称:ankush,代码行数:48,代码来源:ConfigurationManager.java

示例14: initialRevision

import org.hibernate.envers.query.AuditEntity; //导入依赖的package包/类
/**
 * looking for initial revision of entity(for first database insert).
 * 
 * @param auditReader
 *            envers reader implementation
 * @param persistentClass
 *            something that extends {@link AbstractPersistentEntity}
 * @param uniqueIdentifier
 *            primary key of entity
 * @return revision number
 */
public static Number initialRevision(AuditReader auditReader, Class<? extends IBO> persistentClass, long uniqueIdentifier) {
	return (Number) auditReader.createQuery()
			.forRevisionsOfEntity(persistentClass, true, true)
			.add(AuditEntity.id().eq(uniqueIdentifier))
			.add(AuditEntity.revisionType().eq(RevisionType.ADD))
			.addProjection(AuditEntity.revisionNumber().min())
			.getSingleResult();
}
 
开发者ID:xushaomin,项目名称:apple-orm,代码行数:20,代码来源:DataAccessUtility.java

示例15: latestModifyRevision

import org.hibernate.envers.query.AuditEntity; //导入依赖的package包/类
/**
 * looking for latest modify revision of entity(for latest database
 * update/delete).
 * 
 * @param auditReader
 *            envers reader implementation
 * @param persistentClass
 *            something that extends {@link AbstractPersistentEntity}
 * @param uniqueIdentifier
 *            primary key of entity
 * @return revision number
 */
public static Number latestModifyRevision(AuditReader auditReader, Class<? extends IBO> persistentClass, long uniqueIdentifier) {
	return (Number) auditReader
			.createQuery()
			.forRevisionsOfEntity(persistentClass, true, true)
			.add(AuditEntity.id().eq(uniqueIdentifier))
			.add(AuditEntity.revisionType()
			.in(new RevisionType[] { RevisionType.MOD, RevisionType.DEL }))
			.addProjection(AuditEntity.revisionNumber().max())
			.getSingleResult();
}
 
开发者ID:xushaomin,项目名称:apple-orm,代码行数:23,代码来源:DataAccessUtility.java


注:本文中的org.hibernate.envers.query.AuditEntity类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。