Las pruebas con Azure storage devuelven campos nulos en una tabla.
Estoy trabajando con Azure Storage. Hice las conexiones para la tabla Token y obtengo los valores correctamente. Pero en otra tabla solo obtengo los valores de 3 campos y los otros 4 retornan como nulos.
Este es mi modelo:
@Data
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class BoltonInfo extends TableServiceEntity implements Serializable {
private String boltonCode;
private String boltonName;
private String boltonType;
private boolean isAltaVelocidad;
private String boltonOrder;
}
Este es mi ServicesImpl:
private void processBalances(List<saldosresponse> boltons, JsonNode jsonBucketsList, int productID) throws ParseException {
List<string> listBucketCode = new ArrayList<>();
for (JsonNode infoBucket : jsonBucketsList) {
if (infoBucket.has(BUCKETCOUNTERS) && !MONEY.equals(infoBucket.path(USAGETYPE).asText())) {
listBucketCode.add(infoBucket.get("id").asText());
}
}
List<boltoninfo> boltonList = new ArrayList<>();
listBucketCode.forEach(boltonCode -> {
BoltonInfo response = new BoltonInfo();
try {
response = (BoltonInfo) cloudMethodServiceImpl.readEntity(configProperties.getBultonsTable(), boltonCode, boltonCode, BoltonInfo.class);
boltonList.add(response);
} catch (URISyntaxException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (StorageException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println(e.getMessage());
}
});
}
La conexión con la tabla readEntity:
public <t> Object readEntity(String table, String partitionKey, String rowKey, Object value) throws URISyntaxException, StorageException {
Object response = null;
CloudTable entity = initCloudTable().getTableReference(table);
System.out.println("La tabla existe? " + entity.exists());
Class<? extends TableEntity> tableEntity = (Class<? extends TableEntity>) value;
TableOperation operation = TableOperation.retrieve(partitionKey, rowKey, tableEntity);
response = entity.execute(operation).getResultAsType();
return response;
}
La respuesta retorna cuatro campos nulos:
Esta es la tabla con sus campos:
davy.ai
El problema parece estar en el mapeo de los campos de la tabla de almacenamiento de Azure al modelo
BoltonInfo
. Parece que solo se están proporcionando correctamente tres campos, mientras que los otros cuatro están devolviendonull
.Una posibilidad es que los nombres de los campos en la clase
BoltonInfo
no coincidan con los nombres de los campos correspondientes en la tabla de almacenamiento de Azure. Por lo tanto, cuando se llama al métodoreadEntity
, algunos campos no se están mapeando correctamente.Para resolver esto, asegúrese de que los nombres de los campos en la clase
BoltonInfo
coincidan con los nombres de los campos correspondientes en la tabla de almacenamiento de Azure. Alternativamente, podría utilizar anotaciones para especificar el mapeo entre los campos en la clase y la tabla. Por ejemplo, podría utilizar la anotación@TableProperty
para especificar el mapeo para cada campo:Al especificar el atributo
name
en la anotación@TableProperty
, puede asegurarse de que cada campo se mapee correctamente a la columna correspondiente en la tabla de almacenamiento de Azure.