У меня проблема с отображением макроса в JPA, я исключение, так как не могу найти набор результатов.
Объект:
@Entity
@Table(catalog = "EXPLOTACION")
@SqlResultSetMapping(
name="posicionConsolidad",
classes={
@ConstructorResult(
targetClass=TestEntity.class,
columns={
@ColumnResult(name="orden", type=Long.class),
@ColumnResult(name="party_id", type=Long.class),
@ColumnResult(name="agrupador0", type=String.class),
@ColumnResult(name="agrupador1", type=String.class),
@ColumnResult(name="agrupador2", type=String.class),
@ColumnResult(name="total_pesos", type=Long.class),
@ColumnResult(name="total_dolares", type=Long.class),
@ColumnResult(name="total_pesificado", type=Long.class),
@ColumnResult(name="subtotal_moneda_origen", type=Long.class),
@ColumnResult(name="nro_cuenta", type=String.class),
@ColumnResult(name="saldo_moneda_origen", type=Long.class),
@ColumnResult(name="currency_code", type=Integer.class)
}
)
}
)
@NamedNativeQuery(name="getPosicionConsolidada", query="EXECUTE REDUCIDAS_EXPLO.INS_TAX_TENENCIAS_CUENTAS(:fecha, :partyId)", resultSetMapping="posicionConsolidad")
public class TestEntity {
@Id
private Long orden;
private Long idParty;
private String agrupador0;
private String agrupador1;
private String agrupador2;
private Long totalPesos;
private Long totalDolares;
private Long totalPesificado;
private Long subtotalMonedaOrigen;
private String nroCuenta;
private Long saldoMonedaOrigen;
private Integer currencyCode;
*Constructors getters/setters
Хранилище:
public interface TestRepository extends JpaRepository<TestEntity, Long>{
@Query(name="getPosicionConsolidada", nativeQuery = true)
TestEntity getIdParty(@Param("fecha") String fecha, @Param("partyId") Integer partyId);
}
Служба:
@Service("testServices")
@Transactional
public class TestService {
@Autowired
TestRepository testRepository;
public TestEntity getPartyId(String fecha, Integer partyId) {
return testRepository.getIdParty(fecha, partyId);
}
}
Вызов
TestEntity test = testService.getPartyId("'2018-10-31'", 1017150);
Исключение:
Hibernate: EXECUTE REDUCIDAS_EXPLO.INS_TAX_TENENCIAS_CUENTAS(?, ?)
org.springframework.orm.jpa.JpaSystemException: could not extract ResultSet; nested exception is org.hibernate.exception.GenericJDBCException: could not extract ResultSet
...
Caused by: org.hibernate.exception.GenericJDBCException: could not extract ResultSet
...
Caused by: java.sql.SQLException: [Teradata JDBC Driver] [TeraJDBC 16.20.00.10] [Error 1077] [SQLState HY000] executeQuery() cannot be used when there is no result set expected; use executeUpdate() or execute()
ResultSet:
ResultSet
Я думаю, вы не можете рассматривать макрос как процедуру с JPA, и я не могу найти в Интернете реализацию JPA для MACRO в Teradata.
Спасибо.