¿Cómo seleccionar los campos para indexar en una tabla de base de datos?
Java
¿Qué métodos se utilizan para intercambiar datos entre microservicios en la arquitectura?
¿Cómo se puede eliminar la dependencia de una biblioteca en el sistema de construcción Maven?
Implementar la transferencia de fondos entre dos cuentas. Tenga en cuenta que esto es una solución de producción Parámetros de entrada: @param fromAccountId identificador único del usuario que transfiere fondos @param toAccountId identificador único del usuario a quien se le transfieren fondos @param amount cantidad de la transferencia. Número positivo public void transferMoney(Long fromAccountId, Long toAccountId, BigDecimal amount) { if (amount.compareTo(BigDecimal.ZERO) <= 0) { throw new RuntimeException("La cantidad debe ser > 0"); } if (fromAccountId.equals(toAccountId)) { throw new RuntimeException("La cuenta no puede ser la misma"); } Long firstId = Math.min(fromAccountId, toAccountId); Long secondId = Math.max(fromAccountId, toAccountId); Account first = accountRepository.findByIdForUpdate(firstId) .orElseThrow(() -> new RuntimeException("Cuenta no encontrada")); Account second = accountRepository.findByIdForUpdate(secondId) .orElseThrow(() -> new RuntimeException("Cuenta no encontrada")); Account from = fromAccountId.equals(firstId) ? first : second; Account to = fromAccountId.equals(firstId) ? second : first; if (from.getBalance().compareTo(amount) < 0) { throw new RuntimeException("Saldo insuficiente"); } from.setBalance(from.getBalance().subtract(amount)); to.setBalance(to.getBalance().add(amount)); accountRepository.save(to); accountRepository.save(from); }
¿Puede el servicio funcionar correctamente en caso de una falla en la conexión con la base de datos?
¿Cómo maneja HashMap las situaciones en las que se agregan objetos con claves iguales?
¿Qué tipos de datos o valores no se pueden usar como valor para una clave secundaria en una tabla de base de datos?
¿En qué se diferencia el método destroy() al eliminar instancias de beans de tipo Singleton y Prototype?
¿Cómo se puede implementar la mapeo de una clase a una tabla de base de datos en Hibernate?
¿Cuál es el papel y las funciones del comando 'clean' en el sistema de construcción Maven?
¿Dónde estaba el Circuit Breaker en su sistema: en la entrada o en las llamadas salientes?
¿Por qué teóricamente es imposible garantizar CA sin P?
¿Qué son la estampida de caché y la penetración de caché? ¿Cómo luchar contra ellas?
Modifique el método para que, en caso de desbordamiento, devuelva un error. Demuéstrelo con un ejemplo de suma de dos números.
¿Puede describir su experiencia trabajando con la herramienta de automatización de migraciones de bases de datos Liquibase?
¿Cómo optimizó o resolvió el problema de las consultas a la base de datos que tardaban mucho en ejecutarse?
¿Puedes explicar cómo funciona el operador instanceof en Java y en qué situaciones se utiliza?
¿Experiencia con SSO?
¿Qué restricciones existen al usar null como clave en una tabla hash?
¿Qué tipos de interacciones y formatos de datos se utilizaron al trabajar con la API REST?