Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Alguém já se deparou com este erro? Sugestões para resolver?
public static Processo Consultar---ProcessoER(string numProcesso)
{
ISession sessao = NhibernateHelper.SessaoCorrente;
Processo processo;
try
{
processo = new Processo();
ICriteria criterios = sessao.CreateCriteria(processo.GetType());
//criterios.Add(NHibernate.Criterion.Expression.Sql("replace(replace(replace(Num_Proc_Judicial, '.'), '-'), '/') = replace(replace(replace(?, '.'), '-'), '/')", numProcesso, NHibernateUtil.String));
criterios.Add(NHibernate.Criterion.Expression.Sql("regexp_replace(Num_Proc_Judicial || '/','[[:punct:]]','') = regexp_replace(? || '/','[[:punct:]]','')", numProcesso, NHibernateUtil.String));
return criterios.UniqueResult<Processo>();
}
catch (Exception e)
{
throw new Exception(e.ToString());
}
}
Erro:
NHibernate.NonUniqueResultException: query did not return a unique result: 2
em NHibernate.Impl.AbstractQueryImpl.UniqueElement(IList list)
em NHibernate.Impl.CriteriaImpl.UniqueResult()
em NHibernate.Impl.CriteriaImpl.UniqueResult[T]()
em SDPJDominio.DataAccess.ProcessoDAO.Consultar---ProcessoER(String numProcesso) na D:\Repositório SVN\SDP\SDPJ\branches\SDPJ-V3.0.0\SDPJDominio\DataAccess\ProcessoDAO.cs:linha 111
observação a linha 111, é essa linha:
return criterios.UniqueResult<Processo>();
Como poderia sanar esse erro?>
4 horas atrás, quintelab disse:
Eu nunca trabalhei com NHibernate mas pelo que parece sua query traz mais de um registro e essa linha aqui:
return criterios.UniqueResult<Processo>();
Esta esperando apenas 1 registro.
Ou sua query esta errada ou essa linha que espera apenas 1 registro.
Oi **quintelab** tudo bem?
Amigo, eu fiz as devidas alterações aqui e consegui resolver o problema, como sou novo aqui no forum, como eu marco a sugestão de cada colega como correta? E estou com o seguinte problema agora.
Quando eu executo a minha aplicação, me retorna a seguinte mensagem:
A célula H da linha1 deve ser preenchida.
Como eu poderia fazer para colocar o espaço entre a linha e o numeral nessa mensagem?
log.Append("A célula H da linha" + (i) + " deve ser preenchida. <br>");Tem um icone de um coração em cada resposta, sera parar o mouse irá ver uma seta pra cima que significa +1.
Pra colocar espaço basta colocar um espaço depois da palavra linha:
log.Append("A célula H da linha " + (i) + " deve ser preenchida. <br>");
>
40 minutos atrás, quintelab disse:
Tem um icone de um coração em cada resposta, sera parar o mouse irá ver uma seta pra cima que significa +1.
Pra colocar espaço basta colocar um espaço depois da palavra linha:
log.Append("A célula H da linha " + (i) + " deve ser preenchida. <br>");
Obrigado Quintelab, consegui resolver o problema. Abraços!>
4 horas atrás, quintelab disse:
Tem um icone de um coração em cada resposta, sera parar o mouse irá ver uma seta pra cima que significa +1.
Pra colocar espaço basta colocar um espaço depois da palavra linha:
log.Append("A célula H da linha " + (i) + " deve ser preenchida. <br>");
Brother, estou com esse problema novamente relacionado ao log em outra funcionalidade, talves você pode esta me ajudando. Quando aparece a janelinha informando para o usuário que o arquivo foi importado com sucesso, e verificar o log na tela. era para aparecer esse log:
log.Append("O processo " + processo.NumProcessoJudicial + " informado na linha " + (i) + " foi cadastrado com sucesso. <br>");
Porém não aparece, aparece dessa forma:
Log de Importação:
Mas não aparece o log ai de cima aqui
Segue meu código: (Só falta isso para eu terminar minha aplicação :/ )
if (processo != null)
{
List<ProcessoInteressado> listaprocinter = aplProcessoInteressado.consultarPorIdProcesso(processo.Codigo);
if (listaprocinter.Exists(o => o.Interessado == interessado))
log.Append("O interessado informado na linha " + (i) + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>");
setProcInter(processo, interessado, linha);
}
else
{
//Novo Processo - 6.3
processo = new Processo();
processo.Interessado = interessado;
processo.NumProcessoJudicial = linha.ItemArray[2].ToString().Trim();
processo.RenunciaCredito = "N";
processo.Situacao = new AplSituacao().ConsultarPorId(1);
processo.HonorarioDativo = "S";
processo.Reclamado = new AplReclamado().buscaItem(2);
processo.TipoDocumento = new AplTipoDocumento().buscaItem(4);
processo.TipoProcesso = "O";
if (linha.ItemArray[5].ToString().Contains("juizado"))
processo.Tribunal = new AplTribunal().buscaItem(71);
else
processo.Tribunal = new AplTribunal().buscaItem(3);
processo.NaturezaDespeza = new AplNaturezadeDespesa().buscaItem(3);
VaraExecucao vara = new VaraExecucao();
if (!linha.ItemArray[3].ToString().Equals("") && !linha.ItemArray[5].ToString().Equals(""))
{
List<VaraExecucao> listaVaraComarca = aplVaraExecucao.Consultar---omeVaraNomeComarca(linha.ItemArray[5].ToString().Trim(), linha.ItemArray[3].ToString().Trim());
if (listaVaraComarca.Count != 0)
{
if (linha.ItemArray[4].ToString().Equals(""))
{
vara = listaVaraComarca.Find(o => o.NumeroVara == null);
}
else
{
vara = listaVaraComarca.Find(o => o.NumeroVara == int.Parse(linha.ItemArray[4].ToString().Trim()));
}
}
}
if (vara != null && vara.Codigo != 0)
{
processo.VaraExecucao = vara;
}
else
{
logimportacao.Visible = true;
loglbl.Text = log.ToString();
ClientScript.RegisterStartupScript(typeof(string), "Erro", "<script>alert('Arquivo não importado. Verifique o log de erros na tela. ')</script>");
}
aplProcesso.gravar(processo);
aplLog.LogarAtividade(aplUsuario.buscaPorLogin(ObterUsuarioAutenticado().Login), "Importação do processo de número judicial: " + processo.NumProcessoJudicial
+ ". Interessado: " + processo.Interessado.Nome + " - " + processo.Interessado.CPF_CNPJ + ". Tribunal "
+ processo.Tribunal.NomeTribunal + ".", DateTime.Now);
log.Append("O processo " + processo.NumProcessoJudicial + " informado na linha " + (i) + " foi cadastrado com sucesso. <br>");
setProcInter(processo, interessado, linha);
}
Eu nunca trabalhei com NHibernate mas pelo que parece sua query traz mais de um registro e essa linha aqui: