Sobes.tech

În ce cazuri trebuie să folosiți interogări SQL native și în care Hibernate?

157

select name from employee group by name having COUNT(DISTINCT lang) >= 2;

157

Cum să rezolvi problema inconsistenței datelor: apelul extern a avut succes, dar salvarea în baza de date a eșuat?

157

Cum evaluați inițiativa VK de a-și crea propria bază de date și cum ați aprecia calitatea și eficiența acesteia?

Junior — Middle
156

/** * Interfață pentru interacțiunea cu hardware-ul bancomatului. */ interface Hardware { /** * Returnează un array cu numărul de bancnote pentru denumirile 50, 100, 500, 1000, 5000. * Metoda funcționează lent și produce zgomot. * * @return array în care fiecare element corespunde numărului de bancnote pentru o anumită denumire. * De exemplu, [10, 20, 30, 40, 50] înseamnă: * - 10 bancnote de 50 de ruble * - 20 bancnote de 100 de ruble * - 30 bancnote de 500 de ruble * - 40 bancnote de 1000 de ruble * - 50 bancnote de 5000 de ruble */ int[] getBillsCounts(); /** * Încarcă în cutia de ieșire bancnotele indicate. * * @param billsCounts array cu numărul de bancnote pentru denumirile [50, 100, 500, 1000, 5000]. * De exemplu, [0, 1, 0, 2, 0] înseamnă: * - 0 bancnote de 50 * - 1 bancnotă de 100 * - 0 bancnote de 500 * - 2 bancnote de 1000 * - 0 bancnote de 5000 */ void giveBills(int[] billsCounts); } /** * Clasa pentru implementarea logicii bancomatului. * Aici trebuie scris codul */ class MyATM { /** * Hardware-ul bancomatului. */ Hardware hardware; public boolean withdraw(int amount) { int[] counts = hardware.getBillsCounts(); int[] nom = {50, 100, 500, 1000, 5000}; int[] toGive = new int[5]; for (int i = 4; i >= 0; i--) { int needed = amount / nom[i]; int use = Math.min(needed, counts[i]); toGive[i] = use; amount -= use * nom[i]; } if (amount != 0) { return false; } hardware.giveBills(toGive); return true; } }

155

Spune-mi despre ultimul tău proiect: cu ce te-ai ocupat, care au fost sarcinile, ce tehnologie ai folosit?

152

Care sunt consecințele creării unui ObjectMapper ca câmp al clasei (nu prin Spring)?

146

/** * Metoda calculează câte puncte a obținut candidatul, * salvează rezultatul în bază de date și apelează un callback într-un serviciu extern */ public void process(Candidate c) { transactionTemplate.executeWithoutResult(status -> { Score s = interviewScoreMLService.compute(c); String body = objectMapper.writeValueAsString(Map.of(c.getName(), s)); Mono<ResponseEntity<Void>> request = WebClient.create() .post() .body(BodyInserters.fromValue(body)) .retrieve() .toBodilessEntity(); scoreRepository.saveScore(s); }); }

134
/2