Как отладить ответ SP в Quarkus с помощью EntityManagerJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как отладить ответ SP в Quarkus с помощью EntityManager

Сообщение Anonymous »

Добрый день, в настоящее время я создаю микросервис, который выполняет вызов SP (хранимой процедуры) в Quarkus с использованием EntityManager и StoredProcedureQuery. Проблема в том, что у меня возникают проблемы при сопоставлении того, что возвращает БД, есть различия (есть являются ли записи, которые возвращаются дублированными, поскольку они имеют один и тот же первичный ключ, однако остальные данные изменяются) с точки зрения того, что SP возвращает при выполнении его вручную, с тем, что возвращается при сопоставлении со списком в Java, поэтому я хотел бы знать, как я могу отладить с помощью IntellijIdea то, что возвращает БД, и узнать, почему данные дублируются, или можете ли вы дать мне представление о том, почему они могут дублироваться.
Я добавляю основные классы, которые использую
Entity

Код: Выделить всё

package com.tmve.account.beans;

import lombok.Getter;
import lombok.ToString;

import javax.persistence.*;
import java.io.Serializable;
import java.sql.Date;

@NamedStoredProcedureQueries({
@NamedStoredProcedureQuery(
name = PostpaidAccount.NAME_QUERY_BUSCAR_CUENTAS_ROLES_X_DOC_IDE,
procedureName = "PERS.PKG_COMP_CUENTAS.BUSCAR_CUENTAS_ROLES_X_DOC_ID",
resultClasses = {PostpaidAccount.class},
parameters = {
@StoredProcedureParameter(mode = ParameterMode.IN, type = String.class),
@StoredProcedureParameter(mode = ParameterMode.IN, type = Integer.class),
@StoredProcedureParameter(mode = ParameterMode.REF_CURSOR, type = void.class),
})
})
@Getter
@Entity
@ToString
public class PostpaidAccount implements Serializable {

public static final String NAME_QUERY_BUSCAR_CUENTAS_ROLES_X_DOC_IDE=  "BuscarCuentasRolesxDocId";
private static final long serialVersionUID = 1L;

@Id
@Column(name = "V_NUMERO_CUENTA")
Long account;
@Column(name = "V_NUM_CTA_PAGADORA")
Long billingAccountNumber;
@Column(name = "V_NUM_CTA_DIG_VERI")
Long billingAccountNumberValidators;
@Column(name = "V_TIPO_CUENTA")
String accountType;
@Column(name = "V_ESTADO")
String accountStatus;
@Column(name = "V_NOMBRE_ESTADO")
String accountStatusDescription;
@Column(name = "V_ID_PRODUCTO")
Integer productoId;
@Column(name = "NOMBRE_PRODUCTO")
String productName;
@Column(name = "FECHA_INICIO_PROD")
Date customerSince;
@Column(name = "NOMBRES")
String accountHolder;
@Column(name = "V_TIPO_RELACION")
String relationshipType;
@Column(name = "V_PLATAF")
int platformId;
@Column(name = "V_IDENTIFICADOR")
String identifier;
@Column(name = "NOMBRE_AREA")
String marketName;
}
Репозиторий
В этом классе я хотел бы знать, что я могу реализовать или как я могу отладить то, что делает БД. возвращает результат после выполнения следующей строки:
storedProcedureQuery.execute();

Код: Выделить всё

package com.tmve.account.repositoty.impl;

import com.tmve.account.beans.PostpaidAccount;
import com.tmve.account.repositoty.IFindPostpaidAccountByDocumentRepository;
import lombok.extern.slf4j.Slf4j;

import javax.inject.Inject;
import javax.inject.Singleton;
import javax.persistence.EntityManager;
import javax.persistence.StoredProcedureQuery;
import java.util.List;

@Slf4j
@Singleton
public class FindPostpaidAccountByDocumentRepository implements IFindPostpaidAccountByDocumentRepository {

@Inject
EntityManager entityManager;

@Override
public List
 getPostpaidAccount(String documentType, String documentNumber) {

StoredProcedureQuery storedProcedureQuery=entityManager
.createNamedStoredProcedureQuery("BuscarCuentasRolesxDocId");
storedProcedureQuery.setParameter(1,documentNumber);
storedProcedureQuery.setParameter(2,Integer.parseInt(documentType));

storedProcedureQuery.execute();
List result= storedProcedureQuery.getResultList();
return result;

}
}
Вот как журналы отображаются при отладке в IntelliJ Idea:
[img]https:/ /i.sstatic.net/wneXvLY8.png[/img]

И согласно тому, что возвращает БД, записи должны выглядеть так:
Изображение

Как мы видим, записи дублируются, и я не понимаю почему. Может ли это быть как-то связано с подходом к использованию EntityManager?

Подробнее здесь: https://stackoverflow.com/questions/793 ... itymanager
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»