[RESOLVIDO] - JPA não Insere Entity no Banco

30 respostas
Jedi_FeniX

Estou tendo um "erro" estranho, quando tento inserir uma entity no banco não acontece nada, nem exception é gerada.

Seguem os meus arquivos.

Parte da DAO:
public void save(RegraCampanha regraCampanha) {
        this.entityManager.persist(regraCampanha);
        System.out.println("Inserido");
    }
Mapeamento:
@Entity
@Table(name = "regra_campanha")
@NamedQueries({
    @NamedQuery(name = "consultarTodasRegras", query = "select r from RegraCampanha r"),
    @NamedQuery(name = "consultarRegraPorCampanha", query = "select r from RegraCampanha r where r.codigoCampanha = :codigoCampanha")
})
public class RegraCampanha implements Serializable{
    
    @Id
    @Column(name = "id_regra_campanha")
    @TableGenerator(allocationSize = 1, name = "regraGenerator", initialValue = 1)
    @GeneratedValue(strategy = GenerationType.TABLE, generator = "regraGenerator")
    private Long id;
    @Column(name = "descricao")
    private String descricao;
    @Column(name = "codigo_campanha")
    private String codigoCampanha;}

O System.out.println("Inserido") é "printado" no console :shock:

Tenho outros métodos que são de consulta e funcionam perfeitamente.

Desde já agradeço a ajuda.

30 Respostas

diegosantiviago

Você está usando Hibernate? Coloca seu persistence.xml.

Outra coisa, como você está gerenciando as transações?

Jedi_FeniX

Sim, estou usando o hibernate.

persistence.xml:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
  <persistence-unit name="CentralAtendimentoMosaicoPU" transaction-type="JTA">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <jta-data-source>java:/TeradataDS</jta-data-source>
    <class>br.com.druid.centraldeatendimento.model.Cliente</class>
    <class>br.com.druid.centraldeatendimento.model.TipoPortador</class>
    <class>br.com.druid.centraldeatendimento.model.Campanha</class>
    <class>br.com.druid.centraldeatendimento.model.ConsultaCampanhaCartao</class>
    <class>br.com.druid.centraldeatendimento.model.ClientePerfil</class>
    <class>br.com.druid.centraldeatendimento.model.ConsultaCampanhaCPF</class>
    <class>br.com.druid.centraldeatendimento.model.FormatoCampanha</class>
    <class>br.com.druid.centraldeatendimento.model.CadastroClienteCampanha</class>
    <class>br.com.druid.centraldeatendimento.model.ConsultaDadoCliente</class>
    <class>br.com.druid.centraldeatendimento.model.RegraCampanha</class>
    <exclude-unlisted-classes>true</exclude-unlisted-classes>
    <properties>
      <property name="hibernate.dialect" value="org.hibernate.dialect.TeradataDialect"/>
      <property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.JBossTransactionManagerLookup"/>
      <property name="hibernate.show_sql" value="true"/>
    </properties>
  </persistence-unit>
</persistence>

Quem gerencia as transações é o spring.

applicationContexto.xml:
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
        <property name="persistenceUnitName" value="CentralAtendimentoMosaicoPU" />
        <property name="jpaVendorAdapter">
            <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" />
        </property>
    </bean>
        
    <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
        <property name="entityManagerFactory" ref="entityManagerFactory"/>
    </bean>
    <tx:annotation-driven/>
Jedi_FeniX

Só uma correção.

O mapeamento do meu ID está assim:

@Id @Column(name = "id_regra_campanha") @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id;

O que eu postei antes foi um teste que eu estava fazendo.

CristianPalmaSola10

voce não esta esquecendo de comitar a transacao ? ou fazendo roolback por engano no final ?

diegosantiviago

O teu show_sql tá imprimindo o INSERT ?

tenta colocar um:

this.entityManager.flush();

Depois do teu persist.

Jedi_FeniX

Essa query ele não imprime e quando eu coloco o flush dá erro.

diegosantiviago

E cadê o erro?

Jedi_FeniX

Estava simulando ele novamente, como já tinha testado isso já sabia que dava erro... :oops:

09:53:47,066 ERROR [STDERR] javax.persistence.TransactionRequiredException: no transaction is in progress

09:53:47,067 ERROR [STDERR] 	at org.hibernate.ejb.AbstractEntityManagerImpl.flush(AbstractEntityManagerImpl.java:792)

09:53:47,067 ERROR [STDERR] 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

09:53:47,067 ERROR [STDERR] 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

09:53:47,067 ERROR [STDERR] 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

09:53:47,067 ERROR [STDERR] 	at java.lang.reflect.Method.invoke(Method.java:601)

09:53:47,067 ERROR [STDERR] 	at org.springframework.orm.jpa.ExtendedEntityManagerCreator$ExtendedEntityManagerInvocationHandler.invoke(ExtendedEntityManagerCreator.java:365)

09:53:47,068 ERROR [STDERR] 	at $Proxy320.flush(Unknown Source)

09:53:47,068 ERROR [STDERR] 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

09:53:47,068 ERROR [STDERR] 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

09:53:47,068 ERROR [STDERR] 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

09:53:47,068 ERROR [STDERR] 	at java.lang.reflect.Method.invoke(Method.java:601)

09:53:47,068 ERROR [STDERR] 	at org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:240)

09:53:47,068 ERROR [STDERR] 	at $Proxy320.flush(Unknown Source)

09:53:47,068 ERROR [STDERR] 	at br.com.druid.centraldeatendimento.dao.RegraCampanhaDAO.save(RegraCampanhaDAO.java:24)

09:53:47,069 ERROR [STDERR] 	at br.com.druid.centraldeatendimento.endpoint.CampanhaEndpoint.incluirRegraCampanha(CampanhaEndpoint.java:42)

09:53:47,069 ERROR [STDERR] 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

09:53:47,069 ERROR [STDERR] 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

09:53:47,069 ERROR [STDERR] 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

09:53:47,069 ERROR [STDERR] 	at java.lang.reflect.Method.invoke(Method.java:601)

09:53:47,069 ERROR [STDERR] 	at org.springframework.ws.server.endpoint.MethodEndpoint.invoke(MethodEndpoint.java:132)

09:53:47,069 ERROR [STDERR] 	at org.springframework.ws.server.endpoint.adapter.DefaultMethodEndpointAdapter.invokeInternal(DefaultMethodEndpointAdapter.java:229)

09:53:47,069 ERROR [STDERR] 	at org.springframework.ws.server.endpoint.adapter.AbstractMethodEndpointAdapter.invoke(AbstractMethodEndpointAdapter.java:53)

09:53:47,069 ERROR [STDERR] 	at org.springframework.ws.server.MessageDispatcher.dispatch(MessageDispatcher.java:233)

09:53:47,070 ERROR [STDERR] 	at org.springframework.ws.server.MessageDispatcher.receive(MessageDispatcher.java:173)

09:53:47,070 ERROR [STDERR] 	at org.springframework.ws.transport.support.WebServiceMessageReceiverObjectSupport.handleConnection(WebServiceMessageReceiverObjectSupport.java:88)

09:53:47,070 ERROR [STDERR] 	at org.springframework.ws.transport.http.WebServiceMessageReceiverHandlerAdapter.handle(WebServiceMessageReceiverHandlerAdapter.java:59)

09:53:47,070 ERROR [STDERR] 	at org.springframework.ws.transport.http.MessageDispatcherServlet.doService(MessageDispatcherServlet.java:221)

09:53:47,070 ERROR [STDERR] 	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)

09:53:47,070 ERROR [STDERR] 	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)

09:53:47,070 ERROR [STDERR] 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)

09:53:47,070 ERROR [STDERR] 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)

09:53:47,070 ERROR [STDERR] 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:324)

09:53:47,071 ERROR [STDERR] 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242)

09:53:47,071 ERROR [STDERR] 	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)

09:53:47,086 ERROR [STDERR] 	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)

09:53:47,086 ERROR [STDERR] 	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:181)

09:53:47,086 ERROR [STDERR] 	at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.event(CatalinaContext.java:285)

09:53:47,086 ERROR [STDERR] 	at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.invoke(CatalinaContext.java:261)

09:53:47,086 ERROR [STDERR] 	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:88)

09:53:47,086 ERROR [STDERR] 	at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:100)

09:53:47,087 ERROR [STDERR] 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:159)

09:53:47,087 ERROR [STDERR] 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

09:53:47,087 ERROR [STDERR] 	at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)

09:53:47,087 ERROR [STDERR] 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

09:53:47,087 ERROR [STDERR] 	at org.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.invoke(ActiveRequestResponseCacheValve.java:53)

09:53:47,087 ERROR [STDERR] 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362)

09:53:47,087 ERROR [STDERR] 	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)

09:53:47,087 ERROR [STDERR] 	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:654)

09:53:47,087 ERROR [STDERR] 	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:951)

09:53:47,088 ERROR [STDERR] 	at java.lang.Thread.run(Thread.java:722)
diegosantiviago

Segundo a linha:

javax.persistence.TransactionRequiredException: no transaction is in progress

Você está sem transação, logo, não consegue inserir.

Nunca usei o Spring, mas sei que tem uma anotação @Transacional que coloca na classe que você usa (eu acho).

Se não for esse caso da anotação, tenta usar um:

public void save(RegraCampanha regraCampanha) {  
       this.entityManager.getTransaction().begin();
       this.entityManager.persist(regraCampanha);
       this.entityManager.getTransaction().commit();
       System.out.println("Inserido");  
}

Acho que é isso.

DaniloAndrade

diegosantiviago:
Segundo a linha:

javax.persistence.TransactionRequiredException: no transaction is in progress

Você está sem transação, logo, não consegue inserir.

Nunca usei o Spring, mas sei que tem uma anotação @Transacional que coloca na classe que você usa (eu acho).

Se não for esse caso da anotação, tenta usar um:

public void save(RegraCampanha regraCampanha) {  
       this.entityManager.getTransaction().begin();
       this.entityManager.persist(regraCampanha);
       this.entityManager.getTransaction().commit();
       System.out.println("Inserido");  
}

Acho que é isso.

é provável que esteja apenas faltando a anotação do spring no método que necessita de transação;

Jedi_FeniX

Era para o Spring gerenciar essa parte de abertura e fachamento da transação.

Coloquei a sua dica no código e acabou dando este erro:

10:00:34,168 ERROR [STDERR] java.lang.IllegalStateException: Not allowed to create transaction on shared EntityManager - use Spring transactions or EJB CMT instead

10:00:34,170 ERROR [STDERR] 	at org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:198)

10:00:34,170 ERROR [STDERR] 	at $Proxy402.getTransaction(Unknown Source)

10:00:34,170 ERROR [STDERR] 	at br.com.druid.centraldeatendimento.dao.RegraCampanhaDAO.save(RegraCampanhaDAO.java:21)

10:00:34,170 ERROR [STDERR] 	at br.com.druid.centraldeatendimento.endpoint.CampanhaEndpoint.incluirRegraCampanha(CampanhaEndpoint.java:42)

10:00:34,170 ERROR [STDERR] 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

10:00:34,170 ERROR [STDERR] 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

10:00:34,170 ERROR [STDERR] 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

10:00:34,170 ERROR [STDERR] 	at java.lang.reflect.Method.invoke(Method.java:601)

10:00:34,171 ERROR [STDERR] 	at org.springframework.ws.server.endpoint.MethodEndpoint.invoke(MethodEndpoint.java:132)
diegosantiviago

É isso aí…

Sua classe tem o @Transactional ? Acho que não pode ter @Service e @Transaction junto.

Jedi_FeniX

Coloquei o @Transactional e deu este erro:

tmvolpato

faz o seguinte coloque @Transactional em cima método que faz o persist

diegosantiviago

Se você coloca o @Transaction tem que tirar o .getTransaction().begin() e commit() !

Jedi_FeniX

Eu tirei, olha como está agora:

@Transactional public void save(RegraCampanha regraCampanha) { this.entityManager.persist(regraCampanha); System.out.println("Inserido"); }

diegosantiviago

Tá … Funcionou?

Coloca o .flush() porquê se der erro já vai estourar na hora e não ao final da transação.

tmvolpato

continua o erro cole o log ai

Jedi_FeniX

Tinha colado no outro post, enfim, segue o erro completo:

10:13:31,802 ERROR [STDERR] org.springframework.transaction.CannotCreateTransactionException: Could not open JPA EntityManager for transaction; nested exception is java.lang.IllegalStateException: A JTA EntityManager cannot use getTransaction()

10:13:31,803 ERROR [STDERR] 	at org.springframework.orm.jpa.JpaTransactionManager.doBegin(JpaTransactionManager.java:427)

10:13:31,803 ERROR [STDERR] 	at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:371)

10:13:31,803 ERROR [STDERR] 	at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:335)

10:13:31,803 ERROR [STDERR] 	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:105)

10:13:31,804 ERROR [STDERR] 	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

10:13:31,804 ERROR [STDERR] 	at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:622)

10:13:31,804 ERROR [STDERR] 	at br.com.druid.centraldeatendimento.dao.RegraCampanhaDAO$$EnhancerByCGLIB$$455174b2.save(<generated>)

10:13:31,804 ERROR [STDERR] 	at br.com.druid.centraldeatendimento.endpoint.CampanhaEndpoint.incluirRegraCampanha(CampanhaEndpoint.java:42)

10:13:31,804 ERROR [STDERR] 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

10:13:31,804 ERROR [STDERR] 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

10:13:31,804 ERROR [STDERR] 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

10:13:31,805 ERROR [STDERR] 	at java.lang.reflect.Method.invoke(Method.java:601)

10:13:31,805 ERROR [STDERR] 	at org.springframework.ws.server.endpoint.MethodEndpoint.invoke(MethodEndpoint.java:132)

10:13:31,805 ERROR [STDERR] 	at org.springframework.ws.server.endpoint.adapter.DefaultMethodEndpointAdapter.invokeInternal(DefaultMethodEndpointAdapter.java:229)

10:13:31,805 ERROR [STDERR] 	at org.springframework.ws.server.endpoint.adapter.AbstractMethodEndpointAdapter.invoke(AbstractMethodEndpointAdapter.java:53)

10:13:31,805 ERROR [STDERR] 	at org.springframework.ws.server.MessageDispatcher.dispatch(MessageDispatcher.java:233)

10:13:31,805 ERROR [STDERR] 	at org.springframework.ws.server.MessageDispatcher.receive(MessageDispatcher.java:173)

10:13:31,806 ERROR [STDERR] 	at org.springframework.ws.transport.support.WebServiceMessageReceiverObjectSupport.handleConnection(WebServiceMessageReceiverObjectSupport.java:88)

10:13:31,806 ERROR [STDERR] 	at org.springframework.ws.transport.http.WebServiceMessageReceiverHandlerAdapter.handle(WebServiceMessageReceiverHandlerAdapter.java:59)

10:13:31,806 ERROR [STDERR] 	at org.springframework.ws.transport.http.MessageDispatcherServlet.doService(MessageDispatcherServlet.java:221)

10:13:31,806 ERROR [STDERR] 	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)

10:13:31,806 ERROR [STDERR] 	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)

10:13:31,806 ERROR [STDERR] 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)

10:13:31,806 ERROR [STDERR] 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)

10:13:31,807 ERROR [STDERR] 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:324)

10:13:31,807 ERROR [STDERR] 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242)

10:13:31,807 ERROR [STDERR] 	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)

10:13:31,807 ERROR [STDERR] 	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)

10:13:31,807 ERROR [STDERR] 	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:181)

10:13:31,807 ERROR [STDERR] 	at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.event(CatalinaContext.java:285)

10:13:31,808 ERROR [STDERR] 	at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.invoke(CatalinaContext.java:261)

10:13:31,808 ERROR [STDERR] 	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:88)

10:13:31,808 ERROR [STDERR] 	at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:100)

10:13:31,808 ERROR [STDERR] 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:159)

10:13:31,808 ERROR [STDERR] 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

10:13:31,808 ERROR [STDERR] 	at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)

10:13:31,809 ERROR [STDERR] 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

10:13:31,809 ERROR [STDERR] 	at org.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.invoke(ActiveRequestResponseCacheValve.java:53)

10:13:31,809 ERROR [STDERR] 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362)

10:13:31,809 ERROR [STDERR] 	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)

10:13:31,809 ERROR [STDERR] 	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:654)

10:13:31,809 ERROR [STDERR] 	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:951)

10:13:31,810 ERROR [STDERR] 	at java.lang.Thread.run(Thread.java:722)

10:13:31,810 ERROR [STDERR] Caused by: java.lang.IllegalStateException: A JTA EntityManager cannot use getTransaction()

10:13:31,810 ERROR [STDERR] 	at org.hibernate.ejb.AbstractEntityManagerImpl.getTransaction(AbstractEntityManagerImpl.java:818)

10:13:31,811 ERROR [STDERR] 	at org.springframework.orm.jpa.DefaultJpaDialect.beginTransaction(DefaultJpaDialect.java:70)

10:13:31,811 ERROR [STDERR] 	at org.springframework.orm.jpa.vendor.HibernateJpaDialect.beginTransaction(HibernateJpaDialect.java:59)

10:13:31,811 ERROR [STDERR] 	at org.springframework.orm.jpa.JpaTransactionManager.doBegin(JpaTransactionManager.java:377)

10:13:31,811 ERROR [STDERR] 	... 42 more
diegosantiviago

Tem algum lugar chamando .getTransaction();

A JTA EntityManager cannot use getTransaction()
tmvolpato

no seu applicationContext.xml

eu nao vi
isso <tx:annotation-driven transaction-manager="transactionManager"/>
se nao tiver tem que colocar

Jedi_FeniX

Tinha, mas estava assim:

<tx:annotation-driven />

De qualquer maneira eu coloquei da maneira q vc falou e deu o mesmo erro.

Jedi_FeniX

Não tem nenhum lugar chamando getTransaction().

Em relação ao transactionManager no meu applicationContext.xml está assim:

Coloquei da maneira que você falou e deu o mesmo erro:

10:26:20,867 ERROR [STDERR] Caused by: java.lang.IllegalStateException: A JTA EntityManager cannot use getTransaction()

diegosantiviago

Você está usando um servidor de aplicação ou está fazendo Standalone?

DaniloAndrade

faz um teste

muda essa linha

<persistence-unit name="CentralAtendimentoMosaicoPU" transaction-type="JTA">

do seu persistence.xml

para

<persistence-unit name="CentralAtendimentoMosaicoPU" transaction-type="RESOURCE_LOCAL">

e ve se funfa

tmvolpato

blz mas isso precisa ter no arquivo do spring

outro problema que eu vi é que vc esta usando uma transação JTA.
você tem que notificar o spring que se trata de uma aplicação JTA e não RESOURCE_LOCAL

essa configuração que vc acha vai ser inserida no applicationContext.xml

procure sobre isso

Jedi_FeniX

Bom, estava falando com vocês e fazendo uma pesquisa em paralelo, então, achei esse link:

http://stackoverflow.com/questions/10634164/jta-entitymanager-cannot-use-gettransaction-spring-hibernate-entitymanage

Que dá a mesma dica que o Danilo.

Fiz as seguintes alterações.

persistence.xml

Tirei:

<persistence-unit name="CentralAtendimentoMosaicoPU" transaction-type="JTA"> <jta-data-source>java:/TeradataDS</jta-data-source>

E coloquei:

<persistence-unit name="CentralAtendimentoMosaicoPU" transaction-type="RESOURCE_LOCAL"> <non-jta-data-source>java:/TeradataDS</non-jta-data-source>

E funcionou, gostaria de agradecer por este auxilio prestado, valeu mesmo! :smiley: :smiley: :smiley: :smiley: :smiley:

Jedi_FeniX

Respondendo ao Diego.

Estou usando o JBoss 6.1 + Spring 3.1 + JPA 1.0

DaniloAndrade

coloca a tag [Resolvido] no titulo do seu primeiro post

Jedi_FeniX

Feito!

Mais uma vez, muito obrigado pela ajuda de todos!

Fica uma dica para completar esse post, caso alguém precise:

http://www.guj.com.br/java/215376-pergunta-primaria—resource_local-ou-jta-qual-a-melhor-solucao

Até a próxima :wink:

Criado 4 de abril de 2013
Ultima resposta 4 de abr. de 2013
Respostas 30
Participantes 5