Quantcast
Channel: asociaciones con anotaciones en MyBatis - Stack Overflow en español
Viewing all articles
Browse latest Browse all 2

asociaciones con anotaciones en MyBatis

$
0
0

Buen día familia, tengo un proyecto rest montado en Spring. Tengo un endpoind que me funciona y me retorna un array de objetos:

[  {"accountBankId": "24083410-1d00-43a9-9a14-09bd865a1381","accountId": 1,"accountName": "Banco de Oriente","bankId": 2,    .    .    .  },  {"accountBankId": "98ec6daf-0736-4e80-a9aa-0a0a8df59c78","accountId": 1,"accountName": "Nombre Cuenta","bankId": 3,    .    .    .  }]

Sin embargo ahora tengo la necesidad de devolver el mismo objeto pero con un objeto dentro en uno de sus campos así:

{"accountBankId": "98ec6daf-0736-4e80-a9aa-0a0a8df59c78","accountId": 1,"accountName": "Nombre Cuenta","bank": {"name":"...","address": "Avenida Siempreviva ..."  },  .  .  .}

En este caso se remplazo bankId por bank

El código...

El mapper principal:

public interface AsobancariaMapper {final static String GET_ASOBANCARIA_ACCOUNTS = "select aso.nombre_cuenta, aso.datos_bancarios_asobancaria_id, aso.cuenta_id, aso.banco_id, aso.tipo_cuenta, "+" aso.numero_cuenta, aso.codigos_servicio_pse, aso.fecha_creacion, aso.fecha_ultima_actualizacion, aso.medio_pago, "+" aso.sesion_modificacion_id, aso.usuario_modificacion_id "+" from pps.cuenta c "+" left join pps.datos_bancarios_asobancaria aso on c.cuenta_id=aso.cuenta_id "+" where c.cuenta_id is not null "+" and c.cuenta_id = #{accountId} ";  @Select(GET_ASOBANCARIA_ACCOUNTS)    @Results(value = {            @Result(property = "accountName", javaType = String.class, column = "nombre_cuenta"),                       @Result(property = "accountBankId", javaType = String.class, column = "datos_bancarios_asobancaria_id"),            @Result(property = "accountId", javaType = Integer.class, column = "cuenta_id"),            @Result(property = "bank", javaType=BankFull.class,  column="banco_id", one=@One(select="com.payulatam.ppp4.secure.api.mappers.BankMapper.getBankFull")),            @Result(property = "accountType", javaType = String.class, column = "tipo_cuenta"),            @Result(property = "accountNumber", javaType = String.class, column = "numero_cuenta"),            @Result(property = "pseServiceCodes", javaType = String.class, column = "codigos_servicio_pse"),            @Result(property = "creationDate", javaType = Date.class, column = "fecha_creacion"),            @Result(property = "lastUpdatedDate", javaType = Date.class, column = "fecha_ultima_actualizacion"),            @Result(property = "lastUpdateSession", javaType = String.class, column = "sesion_modificacion_id"),            @Result(property = "lastUpdateUser", javaType = Integer.class, column = "usuario_modificacion_id"),            @Result(property = "paymentMethodMain", javaType = String.class, column = "medio_pago")     })    public List<AccountAsobancariaBank> getAccounts(@Param("accountId") final Integer accountId) throws Exception;  }

El mapper del objeto que debe estar incluido en el anterior (getBankFull)

public interface BankMapper {    public static final String ALL_BANKS = "select banco_id, descripcion, pais_iso_3166 from pps.banco";        @Select(GET_BANKFULL_BY_ID)    @Results(value ={            @Result(property = "bankId", javaType = Integer.class, column = "banco_id"),            @Result(property = "accountId", javaType = Integer.class, column = "cuenta_id"),            @Result(property = "altTag", javaType = String.class, column = "alt_tag"),            @Result(property = "description", javaType = String.class, column = "descripcion"),            @Result(property = "image1", javaType = String.class, column = "imagen_1"),            @Result(property = "image2", javaType = String.class, column = "imagen_2"),            @Result(property = "pseCode", javaType = String.class, column = "codigo_pse"),            @Result(property = "bankCountryCode", javaType = String.class, column = "pais_iso_3166"),            @Result(property = "enable", javaType = Boolean.class, column = "habilitado"),            @Result(property = "monthsInterestFree", javaType = Boolean.class, column = "meses_sin_intereses"),            @Result(property = "checkoutSvailable", javaType = Boolean.class, column = "disponible_checkout"),            @Result(property = "bankCode", javaType = Integer.class, column = "codigo_banco"),            @Result(property = "clasification", javaType = String.class, column = "clasificacion")    })    public BankFull getBankFull(Integer bankId) throws Exception;}

El modelo BankFull es un POJO.


Viewing all articles
Browse latest Browse all 2

Latest Images

Trending Articles


Caballa en Airfryer


Esquema de las diferentes Etapas y Reacciones de la Glucólisis


Las aventuras literarias de Aguilera Garramuño


Cargador para pistola 22 marca UNIQUE


Patrón de camiseta para perro


Pastor Gaspar Castro Soberanis


Descargar Driver de impresora Canon G3100 Gratis


Re: Rodatrans (La Roda-Albacete)


Pintores Panameños: JORGE MARCH


Joven murió al colisionar su moto contra camioneta





Latest Images