Erro ao inserir na base usando JPA - The generated value processing detected an existing value

2 respostas
labbati

Pessoal estou tentando inserir um registro em uma tabela vazia. Mesmo assim recebo a mensagem abaixo informando que ja existe o valor na tabela.

[color=darkblue] The generated value processing detected an existing value assigned to this field: com.nsn.csi.oi.revisaoapi.vo.UserApplicationVO.userApplicationId. This existing value was either provided via an initializer or by calling the setter method. You either need to remove the @GeneratedValue annotation or modify the code to remove the initializer processing.

[c[/color]ode]

<openjpa-1.1.1-SNAPSHOT-r422266:807362 fatal user error> org.apache.openjpa.persistence.InvalidStateException: The generated value processing detected an existing value assigned to this field: com.nsn.csi.oi.revisaoapi.vo.UserApplicationVO.userApplicationId.  This existing value was either provided via an initializer or by calling the setter method.  You either need to remove the @GeneratedValue annotation or modify the code to remove the initializer processing.

at org.apache.openjpa.util.ApplicationIds.assign(ApplicationIds.java:460)

at org.apache.openjpa.util.ApplicationIds.assign(ApplicationIds.java:440)

at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.assignObjectId(JDBCStoreManager.java:576)

at kodo.jdbc.kernel.KodoJDBCStoreManager.assignObjectId(KodoJDBCStoreManager.java:33)

at org.apache.openjpa.kernel.DelegatingStoreManager.assignObjectId(DelegatingStoreManager.java:134)

at org.apache.openjpa.kernel.DelegatingStoreManager.assignObjectId(DelegatingStoreManager.java:134)

at org.apache.openjpa.kernel.StateManagerImpl.assignObjectId(StateManagerImpl.java:518)

at org.apache.openjpa.kernel.StateManagerImpl.preFlush(StateManagerImpl.java:2817)

at org.apache.openjpa.kernel.PNewState.beforeFlush(PNewState.java:39)

at org.apache.openjpa.kernel.StateManagerImpl.beforeFlush(StateManagerImpl.java:958)

at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:1955)

at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1915)

at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:1686)

at org.apache.openjpa.kernel.DelegatingBroker.flush(DelegatingBroker.java:989)

at org.apache.openjpa.persistence.EntityManagerImpl.flush(EntityManagerImpl.java:592)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:597)

at weblogic.deployment.BasePersistenceContextProxyImpl.invoke(BasePersistenceContextProxyImpl.java:93)

at weblogic.deployment.TransactionalEntityManagerProxyImpl.invoke(TransactionalEntityManagerProxyImpl.java:91)

at weblogic.deployment.BasePersistenceContextProxyImpl.invoke(BasePersistenceContextProxyImpl.java:80)

at weblogic.deployment.TransactionalEntityManagerProxyImpl.invoke(TransactionalEntityManagerProxyImpl.java:26)

at $Proxy67.flush(Unknown Source)

[/code]

2 Respostas

guerios

Vc tá setando o ID do objeto? Se estiver remova isso e tente gravar

labbati

Pior que nem estou setando o ID do objeto. Ate tentei setar, mas eh um metodo generico que recebe um Object que envia para a base.
Grato pela ajuda

Criado 16 de março de 2012
Ultima resposta 16 de mar. de 2012
Respostas 2
Participantes 2