Quali problemi possono verificarsi nel restituire un'entità JPA dal repository e come evitarli?
Java
Come ti senti riguardo alla scrittura di test?
Leggi il codice e evidenzia gli errori @Component public class AuthorSearchService { @Autowired private AuthorsRepository authorsRepository; @Autowired private StatisticsRepository statisticsRepository; private AlertRestClient arc = new AlertRestClient(); // Nella query può esserci sia il nome completo che solo una parte del nome, ad esempio "Vladimir Panov" o "panov" @Transactional public List<Author> search(String query) { List<Author> authors = authorsRepository.findByNameContainingIgnoreCase(query); Statistics s = statisticsRepository.findById(query).orElse(null); if (s == null) s = new Statistics(query); s.setNumbers(s.getNumbers() + 1); statisticsRepository.save(s); if (s.getNumbers() > 1000 && authors.size() > 1000) { System.out.println("ricerca troppo popolare con troppi dati, invio di un avviso..."); arc.send(query, s.getNumbers(), authors.size()); } return authors; } } @Entity @Data public class Author { @Id @GeneratedValue private Long id; private String name; @OneToMany(mappedBy = "author") private List<Book> books; public Author(String name) { this.name = name; } }
Il servizio si interrompe ogni poche ore con un OutOfMemoryError. Da dove inizi l'analisi del problema?
Come visualizzare le query SQL che JPA/Hibernate invia al database?
Quali approcci utilizzare per migliorare l'efficienza delle operazioni di inserimento dei dati nel database dopo l'implementazione degli indici?
A cosa serve il vincolo di chiave esterna? Non si può fare senza?
Quante tentativi sono necessari per garantire di ottenere una coppia dello stesso colore, se hai una pila di calzini di tre colori (rosso, bianco, nero) e ne estrai uno alla volta?
Leggi il codice, determina cosa verrà visualizzato alla fine dell'esecuzione del programma
Cosa vorresti fare nel tuo nuovo ambiente? Cosa significa per te partecipare alle decisioni architettoniche?
Parlami di te e della tua esperienza
Il programma si bloccherà durante le transazioni tra portafogli? Perché?
Fornisci un esempio di un grande compito aziendale o integrazione che hai fatto completamente da solo.
Hai esperienza nella scrittura di BeanPostProcessor? Per quale compito?
Raccontaci più nel dettaglio come hai ottimizzato l'elaborazione dei messaggi Kafka e le chiamate RPC sincrone.
C'è stata una revisione del codice nel team?
Ci sono restrizioni sugli indici? Quali tipi di indici esistono (hash, B-tree) e quando usarli?
Quali garanzie fornisce una chiave esterna in un database relazionale? È possibile eliminare una registrazione padre se ci sono chiavi esterne che la riferiscono?
Cosa faresti se hai distribuito qualcosa e tutto è crollato — allarmi, non capisci cosa sta succedendo?
Come ridurre il carico sul database se la cache scade e le richieste iniziano a andare massivamente al database?