Java
Pověz mi, jak ses ponořil do detailů tohoto projektu.
Jaké výchozí údaje se používají k určení hodnoty hashCode v objektu?
Jakou roli hraje systém správy verzí v procesu vývoje softwaru?
Jak lze implementovat ukládání a zobrazování struktury rodokmenu v relační databázi?
Můžete vysvětlit rozdíl mezi pojmy polymorfismus a abstrakce v objektově orientovaném programování?
Přečtěte si kód a zvýrazněte chyby /** * Klient s koupeným lístkem může za příplatek vybrat konkrétní místo. * Základní cena míst je určena tarify (externí služba). * Pro klienty s určitými tarify (PREMIUM, ULTRA) je třeba při platbě poskytnout slevu. * Při rezervaci je vystavena faktura k úhradě. Správa plateb probíhá v externí službě. */ @Service public class SeatBookingService { @Autowired private SeatBookingRepository seatBookingRepository; @Autowired private TicketRepository ticketRepository; @Autowired private TariffClient tariffClient; @Autowired private CustomerClient customerClient; @Autowired private PaymentClient paymentClient; /** * Rezervace. * @param seatCode kód místa (např. 19A) * @param ticketId ID lístku */ @Transactional public void bookSeat(String seatCode, UUID ticketId) { var ticket = ticketRepository.findById(ticketId); //rezervujeme var seatBooking = new SeatBooking(seatCode, ticket.get().getFlightId(), ticketId, BookingStatus.BOOKED); seatBookingRepository.save(seatBooking); //najdeme základní tarif pro místo v letadle var basePrice = tariffClient.getBasePrice(ticket.get().getPlaneModel(), seatCode); //najdeme údaje o zákazníkovi Long userId = (Long) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); var userData = customerClient.getCustomer(userId); System.out.println("Nalezen uživatel " + userData.getFio() + " číslo dokumentu " + userData.getDocument()); var price = basePrice; if (userData.getTariff() == "PREMIUM") { //50% sleva price = basePrice * 0.5d; } if (userData.getTariff() == "ULTRA") { //20% sleva price = basePrice * 0.8d; } var invoice = new Invoice(price, ticketId, userId); //vystavíme fakturu paymentClient.sendInvoice(invoice); System.out.println("Faktura odeslána"); } @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; }
Můžete mluvit o různých druzích propagace, které lze nastavit v anotaci @Transactional?
Jaké zdroje používáš k hledání studijních materiálů a aktualizací v oblasti technologií?
Je možné navázat spojení mezi různými kolekcemi v databázi MongoDB?
Jak jste začali s učením práce s Javou a vaše první projekty v tomto jazyce?
Čím jsou tvořeny dotazy do databáze?
Na čem je založen framework Spring?
V čem spočívá rozdíl mezi databázemi SQL a NoSQL?
Kde se používá anotace @Bean?
Kde je nejlepší používat dědičnost a asociaci v programování?
Co je to idempotentnost metody?
Jaký přístup k autentizaci a autorizaci je implementován ve Spring Security ve vašem projektu?
Jaký je rozdíl mezi metodami HTTP požadavků?
Co je to rozhraní AutoCloseable a jak funguje konstrukce try-with-resources v Javě?
Proč jsou databáze lepší než textové soubory?