0

I have the following situation

@Override
public Boolean getCdrUtilizouHoje(Integer duration,
        String msisdnOriginator, int dialstatus, Timestamp dataAtual) {

    //TODO ver o retorno cdrStat
    SimpleDateFormat formato = new SimpleDateFormat("yyyy-MM-dd");  
    String hoje =  new String();
    Timestamp stamp =dataAtual;// new Timestamp(System.currentTimeMillis());
    try {
        hoje =  formato.format(stamp);
    } catch (Exception e) {
        System.out.println(e.getMessage());
    }

    List<CdrStat> rs =em.createNativeQuery("Select * from Cdr_Stat where msisdn =?1 and callDatetime between '2016-06-03 00:00:00.00' and '2016-06-03 23:59:59.99'",CdrStat.class)
                    .setParameter(1, msisdnOriginator)
                    .getResultList();

    return !rs.isEmpty();
}

I´m using glassfish 4 java 8 and hibernate 5. When I execute this code it throws the following exception:

Caused by: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.5.0.v20130507-3faac2b): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: org.postgresql.util.PSQLException: ERROR: current transaction is aborted, commands ignored until end of transaction block
Error Code: 0
Call: Select * from Cdr_Stat where msisdn =? and callDatetime between '2016-06-03 00:00:00.00' and '2016-06-03 23:59:59.99'
    bind => [1 parameter bound]
Query: ReadAllQuery(referenceClass=CdrStat sql="Select * from Cdr_Stat where msisdn =? and callDatetime between '2016-06-03 00:00:00.00' and '2016-06-03 23:59:59.99'")
    at org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java:340)
    at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.processExceptionForCommError(DatabaseAccessor.java:1605)
    at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:671)
    at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeCall(DatabaseAccessor.java:558)
    at org.eclipse.persistence.internal.sessions.AbstractSession.basicExecuteCall(AbstractSession.java:1995)
    at org.eclipse.persistence.sessions.server.ClientSession.executeCall(ClientSession.java:296)
    at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:242)
    at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:228)
    at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeSelectCall(DatasourceCallQueryMechanism.java:299)
    at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.selectAllRows(DatasourceCallQueryMechanism.java:694)
    at org.eclipse.persistence.queries.ReadAllQuery.executeObjectLevelReadQuery(ReadAllQuery.java:477)
    at org.eclipse.persistence.queries.ObjectLevelReadQuery.executeDatabaseQuery(ObjectLevelReadQuery.java:1155)
    at org.eclipse.persistence.queries.DatabaseQuery.execute(DatabaseQuery.java:899)
    at org.eclipse.persistence.queries.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:1114)
    at org.eclipse.persistence.queries.ReadAllQuery.execute(ReadAllQuery.java:402)
    at org.eclipse.persistence.queries.ObjectLevelReadQuery.executeInUnitOfWork(ObjectLevelReadQuery.java:1202)
    at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.internalExecuteQuery(UnitOfWorkImpl.java:2894)
    at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1797)
    at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1779)
    at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1744)
    at org.eclipse.persistence.internal.jpa.QueryImpl.executeReadQuery(QueryImpl.java:258)
    ... 99 more
Caused by: org.postgresql.util.PSQLException: ERROR: current transaction is aborted, commands ignored until end of transaction block
    at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2101)
    at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1834)
    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:510)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:386)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:271)
    at com.sun.gjc.spi.jdbc40.PreparedStatementWrapper40.executeQuery(PreparedStatementWrapper40.java:642)
    at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeSelect(DatabaseAccessor.java:1002)
    at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:641)
    ... 117 more

Does somebody know what happened?

In my persistence.xml I have

http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">

    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
    <jta-data-source>jdbc/FreeCall</jta-data-source>
     <!--
     transaction-type="RESOURCE_LOCAL" -->
    <!-- name="FreeCallJPA" -->

            <!-- org.hibernate.ejb.HibernatePeristence -->
<!--    <jta-data-source>jdbc/FreeCall</jta-data-source>
    -->


    <class>br.com.supportcomm.freecall.entity.AccessOutoftime</class>
    <class>br.com.supportcomm.freecall.entity.Agencia</class>
    <class>br.com.supportcomm.freecall.entity.AreaCode</class>
    <class>br.com.supportcomm.freecall.entity.Cfu</class>
    <class>br.com.supportcomm.freecall.entity.Region</class>
    <class>br.com.supportcomm.freecall.entity.Anunciante</class>
    <class>br.com.supportcomm.freecall.entity.CadastroParticipante</class>
    <class>br.com.supportcomm.freecall.entity.Campanha</class>
    <class>br.com.supportcomm.freecall.entity.Cdr</class>
    <class>br.com.supportcomm.freecall.entity.CdrStat</class>
    <class>br.com.supportcomm.freecall.entity.Estimulo</class>
    <class>br.com.supportcomm.freecall.entity.Insertion</class>
    <class>br.com.supportcomm.freecall.entity.ListaGeral</class>
    <class>br.com.supportcomm.freecall.entity.MsisdnCampanha</class>
    <class>br.com.supportcomm.freecall.entity.Spot</class>
    <class>br.com.supportcomm.freecall.entity.SpotAudioFile</class>
    <class>br.com.supportcomm.freecall.entity.SpotResponse</class>
    <class>br.com.supportcomm.freecall.entity.SpotTipo</class>
    <class>br.com.supportcomm.freecall.entity.Statistic</class>
    <class>br.com.supportcomm.freecall.entity.UserAccess</class>
    <class>br.com.supportcomm.freecall.entity.UserType</class>
    <class>br.com.supportcomm.freecall.entity.UserHistory</class>
    <class>br.com.supportcomm.freecall.entity.LastCallMsisdn</class>
    <class>br.com.supportcomm.freecall.vo.ListaFidelizadaVO</class>
    <class>br.com.supportcomm.freecall.vo.ListaInteracaoVO</class>
    <class>br.com.supportcomm.freecall.vo.ListaDuracaoVO</class>
    <class>br.com.supportcomm.freecall.vo.ListaEfetividadeVO</class>
    <class>br.com.supportcomm.freecall.vo.ListaEfetividadeConsolidadaVO</class>

    <class>br.com.supportcomm.freecall.vo.ListaCampanhaVO</class>
    <class>br.com.supportcomm.freecall.entity.InitialConfig</class>
    <class>br.com.supportcomm.freecall.entity.ListDetail</class>
    <class>br.com.supportcomm.freecall.entity.ListSegmentation</class>
    <class>br.com.supportcomm.freecall.entity.ListSegmentationPK</class>
    <class>br.com.supportcomm.freecall.entity.ControlFlow</class>
    <class>br.com.supportcomm.freecall.entity.ControlFlowHistory</class>
    <class>br.com.supportcomm.freecall.entity.Foward</class>
    <class>br.com.supportcomm.freecall.entity.Config</class>

    <class>br.com.supportcomm.freecall.entity.CampanhaSumary</class>
    <class>br.com.supportcomm.freecall.entity.CampanhaInteraction</class>



    <properties>

        <property name="hibernate.connection.username" value="postgres" />
        <property name="hibernate.connection.driver_class" value="org.postgresql.Driver" />
        <property name="hibernate.connection.password" value="postgres" />
        <property name="hibernate.connection.url" value="jdbc:postgresql://192.168.3.108:5432/dbFreeCall_20130913" />
        <property name="hibernate.connection.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />
        <property name="hibernate.hbm2ddl.auto" value="update" />
        <property name="hibernate.show_sql" value = "false" />
        <property name="current_session_context_class" value="thread"/>

    </properties>
</persistence-unit>

Cœur
  • 37,241
  • 25
  • 195
  • 267
  • you say using Hibernate and then present a stack trace for EclipseLink! You have EclipseLink persistenceProvider in your persistence.xml! – Neil Stockton Jun 03 '16 at 14:51
  • 1
    when i read this stacktrace right, you had another excepetion before which aborted your transaction, so every sqlcommand will not be executed until you leave the current operation. – Turo Jun 03 '16 at 14:58

0 Answers0