Найти тему
Проблема с N+1 запросами в JPA и Hibernate
Проблема N + 1 возникает, когда фреймворк доступа к данным выполняет N дополнительных SQL-запросов для получения тех же данных, которые можно получить при выполнении одного SQL-запроса. Подробнее о каждом варианте будет чуть позже, ссылки приложу...
6 месяцев назад
Java. Многопоточность №2. ExecutorService.
ExecutorService – это интерфейс Java, который предоставляет удобный способ управления потоками исполнения. Он позволяет создавать пул потоков исполнения и выполнять задачи в этих потоках. Java. Multithreading #2...
1 год назад
Оснновные характеристики Java Collections
ArrayList Поддерживает динамические массивы. По мере добавления элементов в список, емкость внутреннего массива автоматически увеличивается. LinkedList Использует для хранения двусвязный список. Поэтому Итератор поддерживает обход в обе стороны. Помимо интерфейса List реализует интерфейсы Dequeue и Queue. Соединяет функциональность работы со списком и функциональность очереди. Используется когда необходимо часто добавлять или удалять элементы, особенно в начало списка. Либо когда нужна вставка элемента в конец за гарантированное время...
1 год назад
Теорема CAP
1 год назад
Модель памяти Java. Happens before.
«Выполняется прежде» (англ. happens before) — отношение строгого частичного порядка (антирефлексивное, антисимметричное, транзитивное), введённое между атомарными командами (++ и -- не атомарны), придуманное Лесли Лэмпортом и не означающее «физически прежде»...
1 год назад
Распространение и изоляция транзакций Spring Data JPA
Распространение транзакций Распространение определяет границу транзакции нашей бизнес-логики. Spring удается запустить и приостановить транзакцию в соответствии с нашими настройками распространения . Spring вызывает TransactionManager::getTransaction , чтобы получить или создать транзакцию в соответствии с распространением. Он поддерживает некоторые варианты распространения для всех типов TransactionManager , но некоторые из них поддерживаются только определенными реализациями TransactionManager ...
105 читали · 1 год назад
Принцип ACID
Atomicity (атомарность) Атомарность гарантирует, что каждый запрос в транзакции будет выполнен успешно, либо вообще никакой, в случае ошибки одного. Не получится так, что часть запросов выполнятся успешно, а часть с ошибкой. Если хоть одна часть транзакции выполнится с ошибкой, вся транзакция не выполнится. Другими словами под атомарностью можно понимать «всё или ничего». Consistency (консистентность, согласованность) Это свойство даёт гарантию того, что все данные будут целостны. Данные будут корректны...
1 год назад
Принципы SOLID, о которых должен знать каждый разработчик
Вот как расшифровывается акроним SOLID: Рассмотри подробнее каждый из принципов. Single Responsibility Principle (Принцип единственной ответственности) Класс должен быть ответственен лишь за что-то одно. Если класс отвечает за решение нескольких задач, его подсистемы, реализующие решение этих задач, оказываются связанными друг с другом. Изменения в одной такой подсистеме ведут к изменениям в другой. Пример: class Animal {    public Animal(String name){ }    public String getAnimalName() { } ...
1 год назад
Иерархия коллекция Java (Java collection framwork)
Рассмотрим основные более подробно. На вершине иерархии в Java Collection Framework располагаются 2 интерфейса: Collection и Map. Эти интерфейсы разделяют все коллекции, входящие во фреймворк на две части по типу хранения данных: простые последовательные наборы элементов и наборы пар «ключ — значение» (словари). При чём Collection Наследуется от интерфейса Iterable. Iterable представляет собой простое представление ряда однородных элементов, которые могут повторяться определенное количество раз...
1 год назад
Настройка mapstruct в SpringBoot
Mapstruct — это библиотека для Java, которая генерирует код для передачи данных между разными сущностями в программе. Она помогает сопоставлять объекты из одной сущности с другой. Этот процесс называется маппингом данных, а инструмент для передачи — маппером, или Java mapper...
1 год назад
Factory (фабрика)
Паттерн Factory (фабрика) в Java - это способ создания объектов, который позволяет определить интерфейс для создания объектов и предоставить реализацию для этого интерфейса. Относится к категории пораждающих. Пример использования паттерна Factory в Java: public interface CarFactory { public Car createCar(); } public class HondaCarFactory implements CarFactory { @Override public HondaCar createCar() { return new HondaCar(); } } public class ToyotaCarFactory implements CarFactory{ @Override public ToyotaCar createCar(){ return new ToyotaCar(); } }...
1 год назад