Problemas para gravar informação no banco de dados

Boa tarde galera…
peguei um projeto em andamento, um projeto de demandas, e ele ja estava funcionando so que encontramos alguns erros
um deles é que na pagina de inserir uma nova demanda tem como vc enviar p uma pessoa, para um setor todo e para varias pessoas,
neste ultimo caso quando salvamos ele envia para ultima pessoa selecioana, ja tou p ficar doido atras deste erro e naoo acho abaixo tem o codigo
do controller:

este metodo add a uma array os funcionarios selecionados ate aki tudo bem
public void setorOuFuncionario(ActionEvent event) {
if (this.getSetorOuFuncionario() == null || this.getSetorOuFuncionario().isEmpty()) {
setSetorOuFuncionario(new ArrayList());
}
if (!this.funcionarioSelecionado1.equals("")) {
Funcionario f = (Funcionario) this.funcionariosPorSetor.get(this.funcionarioSelecionado1);
getSetorOuFuncionario().add(f);
SetorOuFuncionario sf = new SetorOuFuncionario();
sf.setSetor(f.getSetor().getSigla());
sf.setFuncionario(f.getPessoa1().getNome());
sf.setInstanceOfSetor(false);
sf.setObject(f);
this.nomeSetorOuFuncionario.add(sf);

	} else {
		if (!this.setorSelecionado1.equals("")) {
			Setor s = this.setorDao.buscarSetorPeloNome(this.setorSelecionado1);
			getSetorOuFuncionario().add(s);
			SetorOuFuncionario sf = new SetorOuFuncionario();
			sf.setSetor(s.getSigla());
			sf.setFuncionario("Todos");
			sf.setInstanceOfSetor(true);
			sf.setObject(s);
			this.nomeSetorOuFuncionario.add(sf);
		} else {
			FacesUtils.messageError("Selecione um setor!");
		}
	}
	this.funcionarioSelecionado1 = "";
	this.setorSelecionado1 = "";
	System.out.println("LISTA DE servidores: " + nomeSetorOuFuncionario);
}

este metodo salva a nova demanda e envia para as pessoas selecionadas
public void novaDemanda() throws Exception {
RequestContext context = RequestContext.getCurrentInstance();
Calendar dtLimite = Calendar.getInstance();
dtLimite.setTime(this.dataValidade);
Collection dd = new ArrayList();
Collection listaFinalDeArquivos = new ArrayList();
boolean demandaSalva = false;
try {
AuxPrioridade ap = (AuxPrioridade) this.prioridadeSelecionada.get(this.prioridade.getDescricao());
AuxCategoria ac = (AuxCategoria) this.categoriaSelecionada.get(this.categoria.getDescricao());
AuxStatus s = this.statusDao.buscarStatusPorDescricao(DemandaStatus.EM_ANDAMENTO.getNome());
this.demanda.setPrioridade(ap);
this.demanda.setCategoria(ac);
this.demanda.setDataAbertura(DateUtils.returnToday());
this.demanda.setStatus(s);
for (Object o : getSetorOuFuncionario()) {
System.out.println(“chegou aqui”);
this.detalheDemanda.setDataValidade(dtLimite);
this.detalheDemanda.setFuncionarioOrigem(usuarioEmSessao().getFuncionario());
this.detalheDemanda.setSetorOrigem(usuarioEmSessao().getFuncionario().getSetor());

			if (o instanceof Funcionario) {
				Funcionario ff = (Funcionario) o;
				this.detalheDemanda.setSetorDestino(ff.getSetor());
				this.detalheDemanda.setFuncionarioDestino(ff);
				System.out.println("funcionarios: " + ff);
				
			} else if (o instanceof Setor) {
				Setor ss = (Setor) o;
				this.detalheDemanda.setSetorDestino(ss);
				System.out.println("setores: " + ss);
			}
			
			this.detalheDemanda.setDemanda(this.demanda);
			dd.add(this.detalheDemanda);
			System.out.println("LISTA DE DETALHE DEMANDA: " + dd);
			
			if (this.arquivoSetadoParaUpload) {


					nomeArquivoAnexado = alteraCaracter(a.getNome());
					tipoArquivoAnexado = a.getTipo();
					caminhoArquivoAnexado = alteraCaracter(a.getCaminho());
					System.out.println("nome do arquivoparaupload: " + nomeArquivoAnexado + "." + tipoArquivoAnexado + " Caminho: " + caminhoArquivoAnexado);
					
					a.setNome(nomeArquivoAnexado);
					a.setTipo(tipoArquivoAnexado);
					a.setCaminho(caminhoArquivoAnexado);
					a.setDemanda(this.detalheDemanda);
					
					listaFinalDeArquivos.add(a);
				}
			
				this.detalheDemanda.setArquivoCollection(new ArrayList<Arquivo>());
				this.detalheDemanda.getArquivoCollection().addAll(listaFinalDeArquivos);
				System.out.println("LISTA DE ARQUIVOS PARA UPLOAD: " + listaFinalDeArquivos);
			}
			
		}
		this.demanda.setDetalheDemandaCollection(new ArrayList<DetalheDemanda>());
		this.demanda.getDetalheDemandaCollection().addAll(dd);
		
		this.demandaDao.salvar(this.demanda);
		
		init();
		demandaSalva = true;
	} catch (Exception e) {
		demandaSalva = false;
		FacesUtils.messageInfo("Erro ao criar demanda!");
		throw new Exception(e.getMessage(), e);
	}
	context.addCallbackParam("demandaSalva", demandaSalva);
}

se alguem detectar o erro a ajuda vai ser bem aceita!!! :smiley:

rafaelAlves20, bem vindo ao GUJ.

Poderia por favor postar seu código entre as tags code? Seu código ficará formatado e seu post legível.

Boa tarde galera…
peguei um projeto em andamento, um projeto de demandas, e ele ja estava funcionando so que encontramos alguns erros
um deles é que na pagina de inserir uma nova demanda tem como vc enviar p uma pessoa, para um setor todo e para varias pessoas,
neste ultimo caso quando salvamos ele envia para ultima pessoa selecioana, ja tou p ficar doido atras deste erro e naoo acho abaixo tem o codigo
do controller:

este metodo add a uma array os funcionarios selecionados ate aki tudo bem

[code]public void setorOuFuncionario(ActionEvent event) {
if (this.getSetorOuFuncionario() == null || this.getSetorOuFuncionario().isEmpty()) {
setSetorOuFuncionario(new ArrayList());
}
if (!this.funcionarioSelecionado1.equals("")) {
Funcionario f = (Funcionario) this.funcionariosPorSetor.get(this.funcionarioSelecionado1);
getSetorOuFuncionario().add(f);
SetorOuFuncionario sf = new SetorOuFuncionario();
sf.setSetor(f.getSetor().getSigla());
sf.setFuncionario(f.getPessoa1().getNome());
sf.setInstanceOfSetor(false);
sf.setObject(f);
this.nomeSetorOuFuncionario.add(sf);

} else {
if (!this.setorSelecionado1.equals("")) {
Setor s = this.setorDao.buscarSetorPeloNome(this.setorSelecionado1);
getSetorOuFuncionario().add(s);
SetorOuFuncionario sf = new SetorOuFuncionario();
sf.setSetor(s.getSigla());
sf.setFuncionario(“Todos”);
sf.setInstanceOfSetor(true);
sf.setObject(s);
this.nomeSetorOuFuncionario.add(sf);
} else {
FacesUtils.messageError(“Selecione um setor!”);
}
}
this.funcionarioSelecionado1 = “”;
this.setorSelecionado1 = “”;
System.out.println("LISTA DE servidores: " + nomeSetorOuFuncionario);
}

este metodo salva a nova demanda e envia para as pessoas selecionadas
public void novaDemanda() throws Exception {
RequestContext context = RequestContext.getCurrentInstance();
Calendar dtLimite = Calendar.getInstance();
dtLimite.setTime(this.dataValidade);
Collection dd = new ArrayList();
Collection listaFinalDeArquivos = new ArrayList();
boolean demandaSalva = false;
try {
AuxPrioridade ap = (AuxPrioridade) this.prioridadeSelecionada.get(this.prioridade.getDescricao());
AuxCategoria ac = (AuxCategoria) this.categoriaSelecionada.get(this.categoria.getDescricao());
AuxStatus s = this.statusDao.buscarStatusPorDescricao(DemandaStatus.EM_ANDAMENTO.getNome());
this.demanda.setPrioridade(ap);
this.demanda.setCategoria(ac);
this.demanda.setDataAbertura(DateUtils.returnToday());
this.demanda.setStatus(s);
for (Object o : getSetorOuFuncionario()) {
System.out.println(“chegou aqui”);
this.detalheDemanda.setDataValidade(dtLimite);
this.detalheDemanda.setFuncionarioOrigem(usuarioEmSessao().getFuncionario());
this.detalheDemanda.setSetorOrigem(usuarioEmSessao().getFuncionario().getSetor());

if (o instanceof Funcionario) {
Funcionario ff = (Funcionario) o;
this.detalheDemanda.setSetorDestino(ff.getSetor());
this.detalheDemanda.setFuncionarioDestino(ff);
System.out.println("funcionarios: " + ff);

} else if (o instanceof Setor) {
Setor ss = (Setor) o;
this.detalheDemanda.setSetorDestino(ss);
System.out.println("setores: " + ss);
}

this.detalheDemanda.setDemanda(this.demanda);
dd.add(this.detalheDemanda);
System.out.println("LISTA DE DETALHE DEMANDA: " + dd);

if (this.arquivoSetadoParaUpload) {

nomeArquivoAnexado = alteraCaracter(a.getNome());
tipoArquivoAnexado = a.getTipo();
caminhoArquivoAnexado = alteraCaracter(a.getCaminho());
System.out.println("nome do arquivoparaupload: " + nomeArquivoAnexado + “.” + tipoArquivoAnexado + " Caminho: " + caminhoArquivoAnexado);

a.setNome(nomeArquivoAnexado);
a.setTipo(tipoArquivoAnexado);
a.setCaminho(caminhoArquivoAnexado);
a.setDemanda(this.detalheDemanda);

listaFinalDeArquivos.add(a);
}

this.detalheDemanda.setArquivoCollection(new ArrayList());
this.detalheDemanda.getArquivoCollection().addAll(listaFinalDeArquivos);
System.out.println("LISTA DE ARQUIVOS PARA UPLOAD: " + listaFinalDeArquivos);
}

}
this.demanda.setDetalheDemandaCollection(new ArrayList());
this.demanda.getDetalheDemandaCollection().addAll(dd);

this.demandaDao.salvar(this.demanda);

init();
demandaSalva = true;
} catch (Exception e) {
demandaSalva = false;
FacesUtils.messageInfo(“Erro ao criar demanda!”);
throw new Exception(e.getMessage(), e);
}
context.addCallbackParam(“demandaSalva”, demandaSalva);
}[/code]

se alguem detectar o erro a ajuda vai ser bem aceita!!!