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>