![JAR search and dependency download from the Maven repository](/logo.png)
io.pelle.mango.db.dao.AbstractEntityDAO Maven / Gradle / Ivy
The newest version!
package io.pelle.mango.db.dao;
import io.pelle.mango.client.base.vo.IBaseEntity;
import io.pelle.mango.client.base.vo.IBaseVO;
import io.pelle.mango.client.base.vo.LongAttributeDescriptor;
import io.pelle.mango.client.base.vo.query.AggregateQuery;
import io.pelle.mango.client.base.vo.query.CountQuery;
import io.pelle.mango.client.base.vo.query.DeleteQuery;
import io.pelle.mango.client.base.vo.query.SelectQuery;
import io.pelle.mango.db.voquery.VOClassQuery;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import com.google.common.base.Optional;
public abstract class AbstractEntityDAO implements IVOEntityDAO {
@Autowired
private BaseEntityDAO baseEntityDAO;
private final Class voEntityClass;
public AbstractEntityDAO(Class voEntityClass) {
this.voEntityClass = voEntityClass;
}
@Override
public T getNewEntity(String className, Map properties) {
return baseEntityDAO.getNewVO(className, properties);
}
@Override
public Class getVOEntityClass() {
return voEntityClass;
}
@Override
public T create(T entity) {
return baseEntityDAO.create(entity);
}
@Override
public T save(T entity) {
return baseEntityDAO.save(entity);
}
@Override
public T read(long id) {
return baseEntityDAO.read(id, voEntityClass);
}
@Override
public List filter(SelectQuery query) {
return baseEntityDAO.filter(query);
}
@Override
public Optional read(SelectQuery query) {
return baseEntityDAO.read(query);
}
@Override
public void deleteAll() {
baseEntityDAO.deleteAll(voEntityClass);
}
@Override
public void delete(T entity) {
baseEntityDAO.delete(entity);
}
@Override
public long count(CountQuery query) {
return baseEntityDAO.count(query);
}
@Override
public long aggregate(AggregateQuery query) {
return baseEntityDAO.aggregate(query);
}
@Override
public List getByNaturalKey(String naturalKey) {
return baseEntityDAO.searchByNaturalKey(voEntityClass, naturalKey);
}
@Override
public void deleteQuery(DeleteQuery query) {
baseEntityDAO.deleteQuery(query);
}
@Override
public List getAll() {
SelectQuery query = SelectQuery.selectFrom(voEntityClass);
return filter(query);
}
@Override
public void delete(long id) {
baseEntityDAO.delete(voEntityClass, id);
}
@Override
public long count() {
return baseEntityDAO.count(voEntityClass);
}
protected BaseEntityDAO getBaseEntityDAO() {
return baseEntityDAO;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy