Маппинг сущностей

Базовый Spring
≈ 1 мин чтения

Как Java-класс связывается с таблицей

Spring Data JDBC умеет строить маппинг по соглашениям: класс соответствует таблице, а его свойства — столбцам. Если имена в Java и базе различаются, связь можно указать явно аннотациями. Главная специальная часть модели — идентификатор сущности, помеченный @Id.

@Table("customers")
class Customer {
    @Id
    Long id;

    @Column("full_name")
    String name;

    boolean active;
}

Здесь объект Customer связан с таблицей customers, поле name — со столбцом full_name, а active может быть сопоставлен по соглашению об именах.

Маппинг — это часть контракта со схемой

Аннотации не создают магически подходящую структуру данных для любого класса. Типы столбцов, ограничения, ключи и сама схема базы должны соответствовать модели приложения. Когда имя или структура меняются, важно рассматривать Java-класс и SQL-схему как две стороны одного контракта.

Не добавляйте аннотацию только ради явности. Если соглашение Spring Data JDBC уже однозначно связывает свойство с нужным столбцом, лишний mapping часто только увеличивает шум в модели.