Fluent NHibernate + Postgres + Problema ao salvar objeto

78 views
Skip to first unread message

Leonardo Lima

unread,
Sep 1, 2011, 10:22:24 AM9/1/11
to nhiber...@googlegroups.com
Olá pessoal,

Estou tentando salvar um registro no banco de dados postgres, e estou
com o seguinte erro:
Index was out of range. Must be non-negative and less than the size of
the collection.
Parameter name: index

Eu tô achando que é algo no Mapping do Id, abaixo segue os códigos,
poderiam me dar um help ?

#TRECHO QUE CHAMA O SAVE
CmsUsuarioTipoPagina objUsuarioTipoPagina = new CmsUsuarioTipoPagina();
objUsuarioTipoPagina.IdCmsUsuarioTipo = Id;
objUsuarioTipoPagina.IdCmsPagina = Convert.ToInt32(item.Value);
siteDaoFactory.CmsUsuarioTipoPaginaDAO.Save(objUsuarioTipoPagina);

#METODO SAVE NA GENERICDAO
public T Save(T entity)
{
NHibernateSession.Save(entity);
NHibernateSession.Flush();

return entity;
}

#MAPPING
public CmsUsuarioTipoMap() {
Table("cms_usuario_tipo");
Schema("public");
LazyLoad();
Id(x => x.IdCmsUsuarioTipo).GeneratedBy.Identity().Column("id_cms_usuario_tipo");
Map(x => x.Nome).Column("nome").Not.Nullable();
Map(x => x.IsAtivo).Column("is_ativo").Not.Nullable();
HasMany(x => x.CmsUsuarioList).KeyColumn("id_cms_usuario_tipo");
HasMany(x =>
x.CmsUsuarioTipoPaginaList).KeyColumn("id_cms_usuario_tipo");
}


Muito Obrigado

Att.
Leonardo Lima

Leonardo Lima

unread,
Sep 1, 2011, 1:26:05 PM9/1/11
to nhiber...@googlegroups.com
Ahh...

Se atualizando acabei de testar trocando o mapping de Identity() pra
Sequence("nome_da_sequence") mas não deu certo continua no msmo
erro...
Já isolei o codigo estou criando um novo obj e tentando salvar em uma
pagina em separado mas nada do erro mudar :/

fico no aguardo

Muito obrigado

Att.
Leonardo Lima

Em 1 de setembro de 2011 11:22, Leonardo Lima
<goo...@leonardolima.com.br> escreveu:

João Carlos Clementoni Silva

unread,
Sep 1, 2011, 5:58:20 PM9/1/11
to nhiber...@googlegroups.com
Este erro está sendo disparado pelo NHibernate?
Coloca a stack trace completa da exception pra te ajudar.

Você pode também ativar o log do NHibernate para o modo DEBUG pra pegar mais detalhes.

Leonardo Lima

unread,
Sep 1, 2011, 7:36:51 PM9/1/11
to nhiber...@googlegroups.com
Olá pessoal,

Agora que consegui um tempo para postar a solução, vamos lá...

1) O erro do index estava acontecendo pq eu estava mapeando a mesma
coluna para 2 coisas diferentes... em outra classe havia

Map(x=> x.IdOutraClasse).Column("id_outra_classe");
e tbm
References(x=>x.ObjOutraClasse).Column("id_outra_classe");

Retirei o map e funcionou, depois eu tive outro problema,a quando ao
Id, GeneratedBy().Identity() não funcionou, tive de colocar
GeneratedBy().Sequence("nome_da_sequence"), eu não gostei muito disso,
pq eu acabei travando o banco de dados em Postgres, se alguem souber
como fazer por Identity() para que eu não fique preso a uma tecnologia
do banco eu agradeco....

Mas enfim, depois de umas horas revisando classes, esta pronto...

Muito obrigado a todos :D

Att.
Leonardo Lima

Em 1 de setembro de 2011 18:58, João Carlos Clementoni Silva
<joa...@gmail.com> escreveu:

> --
> Você está recebendo esta mensagem porque se inscreveu no grupo
> "NHibernate-Br" dos Grupos do Google.
> Para ver esta discussão na web, acesse
> https://groups.google.com/d/msg/nhibernate-br/-/PaPOXhSsJLgJ.
> Para postar neste grupo, envie um e-mail para
> nhiber...@googlegroups.com.
> Para cancelar a inscrição nesse grupo, envie um e-mail para
> nhibernate-b...@googlegroups.com.
> Para obter mais opções, visite esse grupo em
> http://groups.google.com/group/nhibernate-br?hl=pt-BR.
>

Elvis Luciano Guimarães

unread,
Sep 1, 2011, 8:00:43 PM9/1/11
to nhiber...@googlegroups.com
Use Native (o default), HiLo ou GuidComb.
No caso do Native vc não precisa explicitar no mapeamento e o NH vai decidir qual estratégia de Id usar dependendo do seu BD.
Para mais detalhes: http://nhforge.org/doc/nh/en/index.html#mapping-declaration-id-generator


2011/9/1 Leonardo Lima <goo...@leonardolima.com.br>



--
Elvis Luciano Guimarães da Silva
Reply all
Reply to author
Forward
0 new messages