ORM расшифровывается как Object Relational Mapping, что переводится как "Объектно-реляционное сопоставление". ORM представляет собой технологию, с помощью которой можно работать с данными в БД, используя объекты Java. ⚠То есть ORM преобразует (mapping) объект в табличное представление и обратно. В эпоху раздора разработчикам приходилось писать SQL-запросы для получения, обновления или удаления данных из базы данных, а потом вручную преобразовывать результаты в объекты (и сейчас такое бывает). OR...
Java Машина
Канал для подготовки к собеседованиям Java разработчика уровня junior, middle, senior, с реальными вопросами которые на них задают.
Графики
📊 Средний охват постов
📉 ERR % по дням
📋 Публикации по дням
📎 Типы контента
Лучшие публикации
20 из 20⚠️ Hibernate. Что такое ORM?
WHERE и HAVING действуют на разных этапах выполнения фильтрации данных. WHERE - является условным оператором, который применяется в случаях, когда нужно сделать выборку по определенному условию, перед агрегацией данных. HAVING - используется для фильтрации групп строк(GROUP BY), по значениям агрегатных функций. То есть, WHERE выполняется до GROUP BY, а HAVING уже после. Пример: 💻 SELECT family_member, AVG(unit_price) as avg FROM Payments WHERE unit_price > 300 GROUP BY family_member HAVING avg ...
⚠SQL. Чем WHERE отличается от HAVING?
Happens before - это набор правил, которым необходимо следовать в многопоточном программировании, чтобы гарантировать корректное взаимодействие между потоками. Эти правила определяют, в каком порядке операции в разных потоках видят изменения, сделанные другими потоками, и обеспечивают предсказуемое поведение программы. ⚠ Это важно потому что, когда несколько потоков обращаются к общим данным или ресурсам, они могут делать это одновременно, что приводит к состояниям гонки (race conditions) и непр...
Proxy - представляет собой паттерн проектирования (заместитель), в котором создаётся подставной объект, который замещает реальный объект. В результате клиентский код, вызывающий данный объект, обращается уже к Proxy-объекту. Тот выполняет свою функцию, а затем уже обращается к исходному объекту. Proxy в Hibernate используется для замены реальной сущности и её отложенной загрузки (lazy loading). С его помощью можно отложить фактическую загрузку данных из базы данных до того момента, когда эти дан...
Данный вопрос довольно часто задают во время собеседования на junior разработчика так как, является базовым, фундаментальным. Ассоциация, агрегация и композиция — это три ключевых концепции объектно-ориентированного программирования (ООП), которые описывают отношения между классами. 1⃣ Ассоциация — это общая форма связи между двумя независимыми классами. Она указывает на то, что один объект может использовать функционал другого объекта. Ассоциация предполагает слабую связь, то есть один объект м...
Иммутабельность String в Java нужна по определенным причинам, среди них: 1⃣ Безопасность и Потокобезопасность - неизменяемые объекты, такие как String, безопасны для использования в многопоточной среде без необходимости синхронизации. Например, если один поток изменяет строку, другой поток не может видеть частичное изменение — так как строка не может быть изменена после создания. 2⃣ Эффективность работы с хэшами - String часто используется в качестве ключей в структурах данных, таких как HashMap...
В Spring аннотации @Primary и @Qualifier используются для разрешения неоднозначности при внедрении зависимостей (Dependency Injection), когда имеется несколько бинов одного типа. Они позволяют указать, какой именно бин должен быть использован в тех или иных случаях. 1⃣ Аннотация @Primary Аннотация @Primary используется, чтобы указать основной (по умолчанию) бин среди нескольких возможных кандидатов одного типа. Когда Spring находит несколько бинов одного типа, помеченный @Primary бин будет испол...
@Resource - так же используется для внедрения зависимостей, аналогично @Autowired, но с некоторыми особенностями. Она принадлежит к пакету javax.annotation и используется в основном в приложениях на основе Java EE, но так же может применяться и в Spring. Так же как и @Autowired ставится над полем, конструктором, setter методом, методом конфигурации. ✅ В отличие от @Autowired, который по умолчанию внедряет зависимости по типу, @Resource по умолчанию ищет зависимость по имени. ✅ Если имя зависимос...