Revision: 64731
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at September 12, 2013 20:30 by pachaman
Initial Code
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.persistence.FlushModeType;
import javax.persistence.LockModeType;
import javax.persistence.Parameter;
import javax.persistence.Query;
import javax.persistence.TemporalType;
/**
* Wrapper sobre una query que evita que se haga flush en la consulta,
* cambiando el modo del flush
* @see Query
* @author jose
*/
public class NonFlushableQueryWrapper implements Query {
private Query wrappedQuery;
public NonFlushableQueryWrapper(Query query) {
wrappedQuery = query;
}
@SuppressWarnings("rawtypes")
@Override
public List getResultList() {
FlushModeType currentFlushMode = wrappedQuery.getFlushMode();
try {
wrappedQuery.setFlushMode(FlushModeType.COMMIT);
return wrappedQuery.getResultList();
} finally {
wrappedQuery.setFlushMode(currentFlushMode);
}
}
@Override
public Object getSingleResult() {
FlushModeType currentFlushMode = wrappedQuery.getFlushMode();
try {
wrappedQuery.setFlushMode(FlushModeType.COMMIT);
return wrappedQuery.getSingleResult();
} finally {
wrappedQuery.setFlushMode(currentFlushMode);
}
}
@Override
public int executeUpdate() {
return wrappedQuery.executeUpdate();
}
@Override
public Query setMaxResults(int maxResult) {
return wrappedQuery.setMaxResults(maxResult);
}
@Override
public int getMaxResults() {
return wrappedQuery.getMaxResults();
}
@Override
public Query setFirstResult(int startPosition) {
return wrappedQuery.setFirstResult(startPosition);
}
@Override
public int getFirstResult() {
return wrappedQuery.getFirstResult();
}
@Override
public Query setHint(String hintName, Object value) {
return wrappedQuery.setHint(hintName, value);
}
@Override
public Map<String, Object> getHints() {
return wrappedQuery.getHints();
}
@Override
public <T> Query setParameter(Parameter<T> param, T value) {
return wrappedQuery.setParameter(param, value);
}
@Override
public Query setParameter(Parameter<Calendar> param, Calendar value, TemporalType temporalType) {
return wrappedQuery.setParameter(param, value, temporalType);
}
@Override
public Query setParameter(Parameter<Date> param, Date value, TemporalType temporalType) {
return wrappedQuery.setParameter(param, value, temporalType);
}
@Override
public Query setParameter(String name, Object value) {
return wrappedQuery.setParameter(name, value);
}
@Override
public Query setParameter(String name, Calendar value, TemporalType temporalType) {
return wrappedQuery.setParameter(name, value, temporalType);
}
@Override
public Query setParameter(String name, Date value, TemporalType temporalType) {
return wrappedQuery.setParameter(name, value, temporalType);
}
@Override
public Query setParameter(int position, Object value) {
return wrappedQuery.setParameter(position, value);
}
@Override
public Query setParameter(int position, Calendar value, TemporalType temporalType) {
return wrappedQuery.setParameter(position, value, temporalType);
}
@Override
public Query setParameter(int position, Date value, TemporalType temporalType) {
return wrappedQuery.setParameter(position, value, temporalType);
}
@Override
public Set<Parameter<?>> getParameters() {
return wrappedQuery.getParameters();
}
@Override
public Parameter<?> getParameter(String name) {
return wrappedQuery.getParameter(name);
}
@Override
public <T> Parameter<T> getParameter(String name, Class<T> type) {
return wrappedQuery.getParameter(name, type);
}
@Override
public Parameter<?> getParameter(int position) {
return wrappedQuery.getParameter(position);
}
@Override
public <T> Parameter<T> getParameter(int position, Class<T> type) {
return wrappedQuery.getParameter(position, type);
}
@Override
public boolean isBound(Parameter<?> param) {
return wrappedQuery.isBound(param);
}
@Override
public <T> T getParameterValue(Parameter<T> param) {
return wrappedQuery.getParameterValue(param);
}
@Override
public Object getParameterValue(String name) {
return wrappedQuery.getParameterValue(name);
}
@Override
public Object getParameterValue(int position) {
return wrappedQuery.getParameterValue(position);
}
@Override
public Query setFlushMode(FlushModeType flushMode) {
return wrappedQuery.setFlushMode(flushMode);
}
@Override
public FlushModeType getFlushMode() {
return wrappedQuery.getFlushMode();
}
@Override
public Query setLockMode(LockModeType lockMode) {
return wrappedQuery.setLockMode(lockMode);
}
@Override
public LockModeType getLockMode() {
return wrappedQuery.getLockMode();
}
@Override
public <T> T unwrap(Class<T> cls) {
return wrappedQuery.unwrap(cls);
}
}
Initial URL
Initial Description
Wrapper over JPA query that avoid flush
Initial Title
JPA NonFlushableQueryWrapper
Initial Tags
java, query
Initial Language
Java