package com.breakersoft.plow.thrift.dao.pgsql;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import java.util.UUID;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import com.breakersoft.plow.dao.AbstractDao;
import com.breakersoft.plow.thrift.ProjectT;
import com.breakersoft.plow.thrift.dao.ThriftProjectDao;
@Repository
@Transactional(readOnly=true)
public class ThriftProjectDaoImpl extends AbstractDao implements ThriftProjectDao {
public static final RowMapper<ProjectT> MAPPER = new RowMapper<ProjectT>() {
@Override
public ProjectT mapRow(ResultSet rs, int rowNum)
throws SQLException {
ProjectT project = new ProjectT();
project.setId(rs.getString("pk_project"));
project.setCode(rs.getString("str_code"));
project.setTitle(rs.getString("str_title"));
project.setIsActive(rs.getBoolean("bool_active"));
return project;
}
};
private static final String GET =
"SELECT " +
"pk_project,"+
"str_code,"+
"str_title, "+
"bool_active " +
"FROM " +
"project ";
@Override
public ProjectT get(UUID id) {
return jdbc.queryForObject(GET + " WHERE pk_project=?", MAPPER, id);
}
@Override
public ProjectT get(String name) {
return jdbc.queryForObject(GET + " WHERE str_code=?", MAPPER, name);
}
@Override
public List<ProjectT> all() {
return jdbc.query(GET, MAPPER);
}
@Override
public List<ProjectT> active() {
return jdbc.query(GET + "WHERE bool_active='t'", MAPPER);
}
@Override
public long getPlowTime() {
return jdbc.queryForLong("SELECT currentTimeMillis()");
}
}