Problemas com CRUD do Seam

1 resposta
L

om dia pessoal,

Eu gerei um CRUD usando o Seam. Tudo funciona, menos o editar, quando eu altero valor de um codigo de uma entidade, chamo o persiste() do EntityHome é lançado:

11:53:42,196 ERROR [application]

javax.persistence.PersistenceException:

org.hibernate.HibernateException: identifier of an instance of

intercambio.neg.modelo.MotivoPtu was

altered from 1 to 2

javax.faces.el.EvaluationException:

javax.persistence.PersistenceException:

org.hibernate.HibernateException: identifier of an instance of

intercambio.neg.modelo.MotivoPtu was

altered from 1 to 2

at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke

(MethodBindingMethodExpressionAdapter.java:102)

at com.sun.faces.application.ActionListenerImpl.processAction

(ActionListenerImpl.java:102)

at javax.faces.component.UICommand.broadcast(UICommand.java:387)

at org.ajax4jsf.component.AjaxActionComponent.broadcast

(AjaxActionComponent.java:55)

at org.ajax4jsf.component.AjaxViewRoot.processEvents

(AjaxViewRoot.java:321)

at org.ajax4jsf.component.AjaxViewRoot.broadcastEvents

(AjaxViewRoot.java:296)

at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:

253)

at org.ajax4jsf.component.AjaxViewRoot.processApplication

(AjaxViewRoot.java:466)


…por um momento pensei q era porque esse codigo eh chave em primeira em uma tabela, mas eu modifico esse valor em uma outra tabala onde esse codigo é uma
have estrangeira.

outro problema se alguem puder ajudar é:

<framework:entity-query name=“mapeamMensagList” auto-create=“true”
ejbql=“select m from MapeamMensag m”>

se eu colocar um propriedade tipo “order” ou “max-result” essa querry nao funciona mais, lança:

javax.el.ELException: /app/manutMapeamMensagI/index.xhtml: Error

reading resultCount on type org.jboss.seam.framework.EntityQuery_$

$_javassist_seam_3

at com.sun.facelets.compiler.TextInstruction.write

(TextInstruction.java:48)

at com.sun.facelets.compiler.UIInstructions.encodeBegin

(UIInstructions.java:39)

at org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:

275)

at org.richfaces.renderkit.html.PanelRenderer.doEncodeBegin

(PanelRenderer.java:189)

at org.richfaces.renderkit.html.PanelRenderer.doEncodeBegin

(PanelRenderer.java:148)

at org.ajax4jsf.renderkit.RendererBase.encodeBegin(RendererBase.java:

100)

at javax.faces.component.UIComponentBase.encodeBegin

(UIComponentBase.java:813)

at javax.faces.component.UIComponent.encodeAll(UIComponent.java:934)

at javax.faces.render.Renderer.encodeChildren(Renderer.java:148)

at javax.faces.component.UIComponentBase.encodeChildren

(UIComponentBase.java:837)

at javax.faces.component.UIComponent.encodeAll(UIComponent.java:936)

at javax.faces.component.UIComponent.encodeAll(UIComponent.java:942)

at com.sun.facelets.FaceletViewHandler.renderView

(FaceletViewHandler.java:592)

at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHa

Qualquer ideia de porque esses erros, podem mandar.

Grato por qualquer ajuda bem-vinda =]
Att. Luis Gustavo

1 Resposta

L

bem pessoal eu descobri que tem algo relacionado com o mapeamento.
Acho q eu estou tentando mudar o valor do @Id de uma entidade já gerenciada.

tenho o seguinte esquema

table mensagens
cod_msg(pk)
desc_msg

table motivo
cod_motivo(pk)
tipo_motivo
des_mot

table sede
cod_sede(pk)
nome_sede

criei a seguinte tabela

mapeam_msg_motivo
cod_sede(pk) - chave composta
cod_msg(pk) - chave composta
cod_motivo - chave estrangeira

quando eu tempo modificar o valor de cod_motivo na mapeam_msg_motivo acontece o primeiro erro.

na entidade que representa table mapeam_msg_motivo, tem uma referencia a entidade q representa table motivo, entao pelo q entendi, quando eu vo la e do .setCodMotivo(novovalor) na primeira entidade(da table mapeam_msg_motivo), o hibernate esta tentando modificar o cod_motivo lah na tabela motivo?

Seria isso q tah causando o problema? Mas no banco eu posso alterar cod_motivo na mapeam_msg_motivolivremente?
se for isso como eu modifico o valor disso?

Criado 18 de novembro de 2009
Ultima resposta 19 de nov. de 2009
Respostas 1
Participantes 1