Bom To Precisando criar um combobox Aninhado…
mas ta foda ta dando erro d+ 
Tipo Fiz Assim…
// Esse Metodo Retorna Todas Empresas Que Oferecem Desconto
public List<SelectItem> getEmpresaConveniada(){
List<Desconto> myList = new DAOFactory().getDescontoDAO().listaPorQuery("select distinct d.nomeEmpresa from Desconto d");
for(Object d : myList){
lista.add(new SelectItem(d.toString(),d.toString()));
}
return lista;
}
//Esse Metodo Retorna Todos Desconto de Acordo com a Empresa Selecionada
public List<SelectItem> getNomeDesconto(String nomeEmpresa){
Map<String , Object> parametros = new HashMap<String, Object>();
parametros.put("nomeEmpresa", nomeEmpresa);
List<Desconto> myList = new DAOFactory().getDescontoDAO().listaPorCriterio("select d.nomeDesconto from Desconto d where d.nomeEmpresa = :nomeEmpresa", parametros);
// if(myList.size() > 0){
// lista.add(new SelectItem(null, "-- Selecione uma das Opções --"));
// }
for(Object d : myList){
lista.add(new SelectItem(d.toString(), d.toString()));
}
return lista;
}
// Esses dois metodos Pra Recuperar o Plano Referente ao Desconto...
private List<Desconto> getPlanosConveniados(String nomeDesconto){
Map<String , Object> parametros = new HashMap<String, Object>();
parametros.put("nomeDesconto", nomeDesconto);
List<Desconto> myList = new DAOFactory().getDescontoDAO().listaPorCriterio("from Desconto d where d.nomeDesconto = :nomeDesconto", parametros);
return myList;
}
public List<SelectItem> getNomePlano(String nomeDesconto){
List<Desconto> myList = getPlanosConveniados(nomeDesconto);
for(Desconto d : myList){
lista.add(new SelectItem(d.getPlano().getNomeFantasia(),d.getPlano().getNomeFantasia()));
}
return lista;
}
