本文整理汇总了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();
}
}
示例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;
}
示例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());
}
示例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;
}
示例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;
}
示例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();
}
示例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));
}
示例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;
}
示例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()
;
}
}
示例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;
}
示例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();
}
示例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;
}
示例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;
}
示例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();
}
示例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();
}