Olá a todos do fórum.
Quando executo alguma ação crud na primeira vez funciona perfeitamente, mas apartir da segunda acontece a seguinte exceção.
br.com.rodrigo.stp.infra.exception.SystemException: net.sf.hibernate.HibernateException: identifier of an instance of br.com.rodrigo.stp.bean.PessoaBean altered from 33 to 0
br.com.rodrigo.stp.infra.generics.AbstractGenericPersistenceHibernateDao.select(AbstractGenericPersistenceHibernateDao.java:182)
br.com.rodrigo.stp.infra.generics.AbstractGenericBusiness.get(AbstractGenericBusiness.java:79)
br.com.rodrigo.stp.presentation.struts.action.AbstractMainAction.doSearch(AbstractMainAction.java:206)
br.com.rodrigo.stp.presentation.struts.action.MenuAction.execute(MenuAction.java:49)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:397)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
identifier of an instance of br.com.rodrigo.stp.bean.PessoaBean altered from 33 to 0
Alguém tem alguma dica pra me ajudar???
O esquisito que isso só acontece quando faço via Web(usando struts), chamando num main funciona normalmente. 
Obrigado.
Sem mais, Rodrigo.
parece que você esta reutilizando o VO para editar e para inserir, ou para inserir duas vezes ou algo assim 
se for isto, crie uma nova instancia do VO que deve funcionar 
Jóia valew, era isso mesmo. 
Eu já tava uma hora batendo a cabeça aqui pra descobrir. :oops:
Obrigado.
Sem mais, Rodrigo.
cara eu to com o mesmo problema, desculpa pela ignorancia mais o q seria VO???
Urubatan poderia detalhar um pouco mais a solução, pois estou com o mesmo problema e não consigo achar solução.
Bem tentando ajudar os amigos:
VO = Value Object , um tipo de pattern que contem apenas set e get, para melhor entendimento procure sobre patterns, também é o mesmo que TO(Transfer Object).
Quando a instancia acredito que ele teve ter criado uma nova instancia do objecto toda vez que for dar um insert ou select, correto?
at
Bem eu tava com esse problema, resolvi trocando o meu saveOrUpdate por merge. Li em alguns foruns e fui testando algumas possibilidades. Esta foi a que resolveu, mas não entendi o porque do problema e porque o merge resolveu, será que alguem poderia dar uma explicação o porque dessa execption.
net.sf.hibernate.HibernateException: identifier of an instance of br.com.rodrigo.stp.bean.PessoaBean altered from 33 to 0
Na real quando tu ta com o objeto conectado com o banco e altera o id do objeto para um id inválido acontece isso, não tem nada a ver com criar um DTO, VO, TO, isso tudo ajuda a não fazer erros, mas o erro é tentar colocar o id inválido no objeto.