Java
¿Qué servicios externos ha utilizado para integrar con su sistema?
¿Qué es Layout en log4j?
¿Cómo se realiza el procesamiento de Servlet en condiciones de multihilo?
¿Qué propiedad se usa para establecer el color de fondo?
¿Por qué hashCode() puede devolver valores iguales para diferentes objetos?
¿Cómo se puede garantizar la unicidad de las claves al usar la estructura de datos HashMap?
¿En qué situaciones puede lanzarse una excepción ClassCastException en una aplicación?
¿De qué maneras se pueden comparar los tipos de datos en Java?
¿Es obligatorio tener en cuenta todos los campos de la entidad al implementar el método equals en el contexto de la lógica empresarial?
¿Quién realizó el control y la gestión de las bases de datos en su último proyecto?
¿Ha aplicado el nivel de aislamiento de transacciones Repeatable Read en sus proyectos?
¿Podría explicar cómo se realiza la transferencia de argumentos por referencia en programación?
¿Cómo se llevó a cabo el proceso de integración del microservicio en su último proyecto y a través de qué mecanismo?
¿Ha tenido casos de desarrollo o implementación de un componente o mecanismo similar a Starter?
Explique el concepto de desnormalización en bases de datos y sus consecuencias para el proyecto.
¿Cuáles son las principales diferencias entre las anotaciones @RestController y @Controller en Spring?
¿Afectará el uso de Stream en la velocidad de ejecución de las operaciones en Java?
¿Puede explicar la diferencia entre el concepto de polimorfismo y abstracción en la programación orientada a objetos?
¿Cómo organizar cálculos paralelos y gestión de hilos en un software corporativo a gran escala?
Lea el código y destaque los errores /** * Un cliente con un billete comprado puede, por un costo adicional, elegir un asiento específico. * El precio base de los asientos se determina mediante tarifas (servicio externo). * Para clientes con tarifas específicas (PREMIUM, ULTRA), se debe aplicar un descuento en el pago. * Al reservar, se emite una factura para el pago. La gestión del pago se realiza en un servicio externo. */ @Service public class SeatBookingService { @Autowired private SeatBookingRepository seatBookingRepository; @Autowired private TicketRepository ticketRepository; @Autowired private TariffClient tariffClient; @Autowired private CustomerClient customerClient; @Autowired private PaymentClient paymentClient; /** * Reserva. * @param seatCode código del asiento (por ejemplo, 19A) * @param ticketId ID del billete */ @Transactional public void bookSeat(String seatCode, UUID ticketId) { var ticket = ticketRepository.findById(ticketId); //reservamos var seatBooking = new SeatBooking(seatCode, ticket.get().getFlightId(), ticketId, BookingStatus.BOOKED); seatBookingRepository.save(seatBooking); //buscamos la tarifa base para el asiento en el avión var basePrice = tariffClient.getBasePrice(ticket.get().getPlaneModel(), seatCode); //buscamos datos del cliente Long userId = (Long) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); var userData = customerClient.getCustomer(userId); System.out.println("Usuario encontrado " + userData.getFio() + " número de documento " + userData.getDocument()); var price = basePrice; if (userData.getTariff() == "PREMIUM") { //descuento del 50% price = basePrice * 0.5d; } if (userData.getTariff() == "ULTRA") { //descuento del 20% price = basePrice * 0.8d; } var invoice = new Invoice(price, ticketId, userId); //emitimos la factura paymentClient.sendInvoice(invoice); System.out.println("Factura emitida"); } @Data @Table("seat_booking") public class SeatBooking { @Column private String seatCode; @Column private UUID flightId; @Column private UUID ticketId; @Column private BookingStatus status; } public enum BookingStatus { BOOKED, PAID; }