AuditEventRepositoryImpl.java
package com.tradecloud.repository.impl;
import com.tradecloud.domain.model.audit.AuditEvent;
import com.tradecloud.repository.AuditEventRepository;
import com.tradecloud.repository.base.impl.RepositoryBaseImpl;
import org.hibernate.Query;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@Repository(value = "auditEventRepository")
@Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.DEFAULT)
public class AuditEventRepositoryImpl extends RepositoryBaseImpl<AuditEvent, Object> implements AuditEventRepository {
@Override
public void store(AuditEvent auditEvent) {
saveOrUpdate(auditEvent);
flush();
}
@Override
public List<AuditEvent> findAllByReferenceAndType(String auditReference, String type) {
String[] references = new String[] { "auditReference", "type" };
Object[] values = new Object[] { auditReference, type };
@SuppressWarnings("unchecked")
List<AuditEvent> results =
(List<AuditEvent>) findByNamedParam(
"from AuditEvent where auditReference = :auditReference and type = :type order by dateTime asc", references, values);
return results;
}
@Override
public void deleteByReference(String reference) {
String queryString = "delete from AuditEvent where auditReference = :auditReference";
Query query = getCurrentSession().createQuery(queryString);
query.setParameter("auditReference", reference);
query.executeUpdate();
}
}