Pegar apenas um valor de uma lista duplicada

Pessoal, tenho uma dúvida boba que não consegui resolver:

tenho o metodo abaixo que uso para listar algumas informações:

[code]public List listarTodasCampanhas(String modelo, String item,String concessao,String mes) {
try {
conn = (Connection) ConnectionFactory.getConnection();

        String sql = "Select * from listaCampanha where concessao like ? and modelo like ? and item like ?";

        PreparedStatement stmt = conn.prepareStatement(sql);
        stmt.setString(1, "%"+concessao+"%");
        stmt.setString(2, "%"+modelo+"%");
        stmt.setString(3, "%"+item+"%");
       // stmt.setString(4, "%"+mes+"%");

        ResultSet rs = stmt.executeQuery();
        List<campanha> lista = new ArrayList();

        while (rs.next()) {
            campanha c = new campanha();
            c.setId(rs.getInt(1));
            c.setConcessao(rs.getString(2));
            c.setModelo(rs.getString(3));
            c.setItem(rs.getString(4));
            c.setCodigo(rs.getString(5));
            c.setPreco(rs.getString(6));
            c.setMo(rs.getString(7));
            c.setMes(rs.getString(8));
            c.setValidade(rs.getString(9));
            lista.add(c);
        }
        rs.close();
        return lista;
    } catch (Exception ex) {
        Logger.getLogger(campanhaDaoMysql.class.getName()).log(Level.SEVERE, null, ex);
    }
[/code]

Quando vou exibir esses dados no jsp, não mostro o mês nem a validade na tabela, porém preciso que a validade seja impressa na tela apenas uma vez, pois ela vem duplicada do banco:
consigo pegar apenas um valor pelo getValidade??

[code]








</tr>

<%
List<campanha> lista = (List<campanha>)request.getAttribute("listaCampanhas");

  if(lista!=null)
      for(campanha c: lista){

  %>

  <tr bgcolor="#E8E8E8">
      
            <td width="150px"><%=c.getConcessao()%></td>
	<td width="150px"><%=c.getModelo()%></td>
            <td width="500px"><%=c.getItem()%></td>
            <td width="300px"><%=c.getCodigo()%></td>
            <td width="100px"><%= c.getPreco()%></td>
            <td width="100px"><%= c.getMo()%></td>

</tr>
  <%
}
%>
</table>

// IMPRIMI AQUI A VALIDADE DESSA CAMPANHA
[/code]

Concessionário Model Item Código Preço M.O

coloca um distinct na sua select que ele tras a consulta sem duplicar. o que acha?

mauricio,
seguindo a sua idéia achei melhor fazer um metodo a parte, para não precisar mexer na estrutura, fiz o seguinte:
O metodo precisa receber o mês e o nome, pois assim a validade retornaria apenas um valor. [ me corrija se eu estiver errado por favor]

[code]public campanha pesquisarValidade( String mes, String concessao) {
try {
conn = (Connection) ConnectionFactory.getConnection();
//String sql = “select * from listaCampanha where modelo like”+"’%"+ modelo +"%’ and item like"+"’%"+ item +"%’" ;
String sql = “Select distinct validade from listacampanha where mes like ? and concessao like ?”;

        PreparedStatement stmt = conn.prepareStatement(sql);
        stmt.setString(1, "%"+mes+"%");
        stmt.setString(2, "%"+concessao+"%");
      
        ResultSet rs = stmt.executeQuery();
        campanha c = new campanha();
        while (rs.next()) {

            c.setValidade(rs.getString(1));               
        }
        rs.close();
        return c;
    } catch (Exception ex) {
        Logger.getLogger(campanhaDaoMysql.class.getName()).log(Level.SEVERE, null, ex);
    }
    return null;

}[/code]

Estou fazer só um teste no meu servlet para saber se está retornando a validade correta:

[code]…
campanhaDaoMysql cDao = new campanhaDaoMysql();
System.out.println(cDao.pesquisarValidade(“DEZEMBRO”, “CIRASA”));

retorno:
bean.campanha@1735998[/code]

onde está o erro?

ta faltando escrever o toString do objeto campanha, a e vc vai conseguir testar.