Java
¿Cómo implementa el trabajo con consultas dinámicas en Spring Data JPA?
¿Has utilizado la construcción SELECT en operaciones de actualización de datos (UPDATE)?
¿Tiene la estructura de datos HashMap un orden predecible de los elementos?
¿Se puede combinar una tarea grande y compleja con varias tareas pequeñas dentro de un mismo equipo?
¿Puede explicar la diferencia entre el concepto de polimorfismo y abstracción en la programación orientada a objetos?
¿La estructura de datos procesa una lista con la capacidad de recorrerla en ambas direcciones o solo en una?
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; }
¿Qué tipos de inyección de dependencias conoces?
Si llamo al método toList() en un Stream, ¿el resultado será un ArrayList u otro tipo de colección?
¿Podría explicar qué significa la abreviatura SLF4J y cómo se utiliza en proyectos Java?
¿Por qué es importante aplicar las propiedades ACID al trabajar con transacciones en bases de datos?
¿Puede considerarse la interfaz Runnable como una interfaz para ejecutar tareas en Java?
¿Cuál es la diferencia entre los métodos equals y hashCode en Java?
¿Puede explicar la concepto de algoritmos sin bloqueo y sus diferencias con otros métodos de sincronización?
¿Cuáles son las principales diferencias entre LinkedList y ArrayList en Java?
¿Cuál es su experiencia en el desarrollo de interfaces basadas en funciones o funciones como componente principal?
¿Qué enfoque de autenticación y autorización se implementa en Spring Security en su proyecto?
¿Se puede crear un comportamiento propio para el constructor en una clase heredada, sobrescribiéndolo?
¿Qué es la interfaz AutoCloseable y cómo funciona la construcción try-with-resources en Java?
¿Cómo se puede especificar una versión concreta de una dependencia transitiva en el archivo de configuración de Gradle?