Please open Telegram to view this post
VIEW IN TELEGRAM
Вопросы с собеседования 👩💻
Что такое TreeSet?
Что такое TreeSet?
Anonymous Quiz
16%
Коллекция пар "ключ-значение"
4%
Массив фиксированного размера
2%
Класс для работы с потоками
78%
Отсортированная коллекция уникальных элементов
@Index в Hibernate
Аннотация @Index в Hibernate используется для определения индекса на одном или нескольких столбцах таблицы базы данных. Индексы ускоряют поиск и сортировку данных, но могут замедлять операции вставки и обновления.
Пакет: org.hibernate.annotations
Применяется к: классу (на уровне @Table), полю или свойству.
Параметры и настройки
Аннотация @Index имеет следующие атрибуты:
name (String):
Название индекса в БД.
Если не указано, Hibernate сгенерирует имя автоматически (например, IDX_<TABLE>_<COLUMN>).
columnList (String):
Обязательный параметр.
Список столбцов, входящих в индекс, через запятую (например, "username, email").
Поддерживает порядок сортировки: "username ASC, email DESC".
unique (boolean, по умолчанию false):
Если true, создает уникальный индекс (аналог UNIQUE INDEX в SQL).
options (String):
Дополнительные SQL-опции для индекса (например, "USING HASH" для MySQL).
Жизненный цикл и обработка
Во время компиляции:
Hibernate анализирует аннотацию и включает её в метаданные ORM.
При старте приложения (Hibernate bootstrap):
Индекс добавляется в DDL-скрипт при автоматической генерации схемы (hibernate.hbm2ddl.auto=create/update).
Если БД уже существует, Hibernate не изменяет индексы при update (только создает новые).
Во время выполнения:
Индекс используется СУБД для оптимизации запросов, но Hibernate напрямую его не контролирует.
Механизмы Hibernate и Spring Boot, влияющие на @Index
Генерация DDL (hibernate.hbm2ddl.auto):
create – создает таблицы и индексы при старте.
update – добавляет новые индексы, но не удаляет старые.
validate – проверяет соответствие модели и БД (включая индексы).
none – отключает управление схемой.
Настройки Spring Boot (application.properties):
Альтернативные способы определения индексов:
Через @Table(indexes = @Index(...)):
Через schema.sql (ручное управление индексами).
Кастомизация имен индексов:
Глобальное именование через ImplicitNamingStrategy (редко используется для индексов).
Особенности и ограничения
СУБД-специфичные индексы (например, частичные индексы в PostgreSQL) требуют @Index(options = "WHERE condition") или ручного SQL.
Составные индексы (columnList = "col1, col2") работают только в указанном порядке.
Миграции: Для сложных изменений индексов лучше использовать Flyway/Liquibase.
#Java #Training #Hard #Spring #Hibernate #Index
Аннотация @Index в Hibernate используется для определения индекса на одном или нескольких столбцах таблицы базы данных. Индексы ускоряют поиск и сортировку данных, но могут замедлять операции вставки и обновления.
Пакет: org.hibernate.annotations
Применяется к: классу (на уровне @Table), полю или свойству.
Параметры и настройки
Аннотация @Index имеет следующие атрибуты:
name (String):
Название индекса в БД.
Если не указано, Hibernate сгенерирует имя автоматически (например, IDX_<TABLE>_<COLUMN>).
columnList (String):
Обязательный параметр.
Список столбцов, входящих в индекс, через запятую (например, "username, email").
Поддерживает порядок сортировки: "username ASC, email DESC".
unique (boolean, по умолчанию false):
Если true, создает уникальный индекс (аналог UNIQUE INDEX в SQL).
options (String):
Дополнительные SQL-опции для индекса (например, "USING HASH" для MySQL).
Жизненный цикл и обработка
Во время компиляции:
Hibernate анализирует аннотацию и включает её в метаданные ORM.
При старте приложения (Hibernate bootstrap):
Индекс добавляется в DDL-скрипт при автоматической генерации схемы (hibernate.hbm2ddl.auto=create/update).
Если БД уже существует, Hibernate не изменяет индексы при update (только создает новые).
Во время выполнения:
Индекс используется СУБД для оптимизации запросов, но Hibernate напрямую его не контролирует.
Механизмы Hibernate и Spring Boot, влияющие на @Index
Генерация DDL (hibernate.hbm2ddl.auto):
create – создает таблицы и индексы при старте.
update – добавляет новые индексы, но не удаляет старые.
validate – проверяет соответствие модели и БД (включая индексы).
none – отключает управление схемой.
Настройки Spring Boot (application.properties):
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.default_schema=public
spring.jpa.show-sql=true
Альтернативные способы определения индексов:
Через @Table(indexes = @Index(...)):
@Entity
@Table(indexes = @Index(name = "idx_user_email", columnList = "email", unique = true))
public class User { ... }
Через schema.sql (ручное управление индексами).
Кастомизация имен индексов:
Глобальное именование через ImplicitNamingStrategy (редко используется для индексов).
Особенности и ограничения
СУБД-специфичные индексы (например, частичные индексы в PostgreSQL) требуют @Index(options = "WHERE condition") или ручного SQL.
Составные индексы (columnList = "col1, col2") работают только в указанном порядке.
Миграции: Для сложных изменений индексов лучше использовать Flyway/Liquibase.
#Java #Training #Hard #Spring #Hibernate #Index
Всем доброго, субботнего утра! 🖐
Как прошла неделя?
Сегодня выходной, поэтому мы посмотрим подборку смешных видосов и делать ничего не будем!😜
А завтра в обычное время допишем футбольный сервис с @Shikin_Anatoliy!💪
Всем хороших выходных!🥳
Как прошла неделя?
Сегодня выходной, поэтому мы посмотрим подборку смешных видосов и делать ничего не будем!
А завтра в обычное время допишем футбольный сервис с @Shikin_Anatoliy!
Всем хороших выходных!
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Всем привет! ✌️
Сегодня мы вновь соберемся с @Shikin_Anatoliy, в 16:00 по МСК в Яндекс.Телемост, чтобы закончить тестовое задание по написанию футбольного сервиса.⚽️
Приходите и учитесь вместе с нами! 💪
Ждем всех 🫵
Сегодня мы вновь соберемся с @Shikin_Anatoliy, в 16:00 по МСК в Яндекс.Телемост, чтобы закончить тестовое задание по написанию футбольного сервиса.
Приходите и учитесь вместе с нами! 💪
Ждем всех 🫵
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Пишем тестовое задание от реального работодателя для новичков! Часть 2 (начало).
Встреча от 13.04.25
Запись встречи -
YOUTUBE
RUTUBE
На сегодняшней встрече наш подписчик @Shikin_Anatoliy рискнул продолжить писать тестовое задание от реального работодателя.
Что мы успели в рамках второй серии:
- Доработали Player
- Создали CRUD для Team
- Все простестили и проработали
Допустили и решили пару систематических ошибок, повторили основы написания.
Ждите продолжения!
Смотрите, комментируйте, задавайте вопросы! Обязательно подписывайтесь на ютуб и рутюб каналы!!!
@Shikin_Anatoliy - респект и уважуха💪
Встреча от 13.04.25
Запись встречи -
YOUTUBE
RUTUBE
На сегодняшней встрече наш подписчик @Shikin_Anatoliy рискнул продолжить писать тестовое задание от реального работодателя.
Что мы успели в рамках второй серии:
- Доработали Player
- Создали CRUD для Team
- Все простестили и проработали
Допустили и решили пару систематических ошибок, повторили основы написания.
Ждите продолжения!
Смотрите, комментируйте, задавайте вопросы! Обязательно подписывайтесь на ютуб и рутюб каналы!!!
@Shikin_Anatoliy - респект и уважуха
Please open Telegram to view this post
VIEW IN TELEGRAM