Всем привет!
Ну вот и выходные... Надеюсь все дождались и все отдыхают😁
Как их проводите, может пишите какой пет-проект?😁
Поделитесь?
Завтрашняя встреча под вопросом, может и будем отдыхать, посмотрим😜
Всем прекрасного отдыха!🌴
На картинке админ пишет пет-проект 😉
Ну вот и выходные... Надеюсь все дождались и все отдыхают
Как их проводите, может пишите какой пет-проект?
Поделитесь?
Завтрашняя встреча под вопросом, может и будем отдыхать, посмотрим
Всем прекрасного отдыха!
Please open Telegram to view this post
VIEW IN TELEGRAM
Аннотация @Id
Аннотация @Id используется в Java Persistence API (JPA) для обозначения поля или свойства сущности, которое является первичным ключом (primary key) в базе данных. Она находится в пакете javax.persistence (или jakarta.persistence, если используется Jakarta EE). Эта аннотация является одной из ключевых в работе с JPA и ORM (Object-Relational Mapping).
Аннотация @Id не принимает никаких параметров. Она просто маркирует поле или геттер как первичный ключ сущности.
Настройки и значения
Поскольку @Id не имеет параметров, её настройка ограничивается выбором поля или свойства, которое будет использоваться в качестве первичного ключа.
Поле, помеченное @Id, должно соответствовать одному из следующих типов:
Примитивные типы: int, long, и т.д.
Обертки примитивных типов: Integer, Long, и т.д.
String
java.util.Date
java.sql.Date
java.math.BigDecimal
java.math.BigInteger
Если используется составной ключ (composite key), то вместо @Id применяется @EmbeddedId или @IdClass.
Жизненный цикл
Аннотация @Id применяется на этапе загрузки метаданных сущности (во время инициализации контекста Spring или при развертывании приложения).
Поле, помеченное @Id, используется JPA для:
Идентификации объекта в контексте persistence.
Сопоставления объекта с записью в базе данных.
Управления жизненным циклом сущности (например, при операциях persist, merge, remove).
Механизмы Spring и настройки Spring Boot
Механизмы Spring, связанные с @Id
Spring Data JPA использует аннотацию @Id для интеграции с JPA-провайдером (например, Hibernate).
При старте приложения Spring Boot автоматически сканирует сущности, помеченные аннотацией @Entity, и анализирует их поля, включая те, что помечены @Id.
Spring Boot настраивает EntityManagerFactory и DataSource, которые используются JPA для работы с базой данных.
Настройки Spring Boot, предшествующие работе @Id
Конфигурация источника данных (DataSource):
Spring Boot автоматически настраивает DataSource на основе свойств, указанных в application.properties или application.yml.
Например:
Конфигурация JPA:
Spring Boot автоматически настраивает JPA через свойства, такие как:
Интеграция с Hibernate:
Hibernate, как JPA-провайдер, использует аннотацию @Id для создания SQL-запросов, таких как INSERT, UPDATE, SELECT, и DELETE, где первичный ключ играет ключевую роль.
Обработка значений @Id
При сохранении сущности (persist), JPA проверяет, что поле, помеченное @Id, имеет уникальное значение.
Если поле @Id имеет значение null, JPA интерпретирует это как новую сущность и генерирует для неё новый первичный ключ (если используется стратегия генерации ключей, например, @GeneratedValue).
При поиске сущности (find), JPA использует значение @Id для выполнения запроса SELECT по первичному ключу.
Варианты настройки
Генерация значений первичного ключа:
Аннотация @Id часто используется вместе с @GeneratedValue, которая определяет стратегию генерации первичного ключа.
Составные ключи:
Если требуется составной ключ, вместо @Id используется @EmbeddedId или @IdClass.
#Java #Training #Hard #Spring #SpringDataJPA #Id
Аннотация @Id используется в Java Persistence API (JPA) для обозначения поля или свойства сущности, которое является первичным ключом (primary key) в базе данных. Она находится в пакете javax.persistence (или jakarta.persistence, если используется Jakarta EE). Эта аннотация является одной из ключевых в работе с JPA и ORM (Object-Relational Mapping).
Аннотация @Id не принимает никаких параметров. Она просто маркирует поле или геттер как первичный ключ сущности.
Настройки и значения
Поскольку @Id не имеет параметров, её настройка ограничивается выбором поля или свойства, которое будет использоваться в качестве первичного ключа.
Поле, помеченное @Id, должно соответствовать одному из следующих типов:
Примитивные типы: int, long, и т.д.
Обертки примитивных типов: Integer, Long, и т.д.
String
java.util.Date
java.sql.Date
java.math.BigDecimal
java.math.BigInteger
Если используется составной ключ (composite key), то вместо @Id применяется @EmbeddedId или @IdClass.
Жизненный цикл
Аннотация @Id применяется на этапе загрузки метаданных сущности (во время инициализации контекста Spring или при развертывании приложения).
Поле, помеченное @Id, используется JPA для:
Идентификации объекта в контексте persistence.
Сопоставления объекта с записью в базе данных.
Управления жизненным циклом сущности (например, при операциях persist, merge, remove).
Механизмы Spring и настройки Spring Boot
Механизмы Spring, связанные с @Id
Spring Data JPA использует аннотацию @Id для интеграции с JPA-провайдером (например, Hibernate).
При старте приложения Spring Boot автоматически сканирует сущности, помеченные аннотацией @Entity, и анализирует их поля, включая те, что помечены @Id.
Spring Boot настраивает EntityManagerFactory и DataSource, которые используются JPA для работы с базой данных.
Настройки Spring Boot, предшествующие работе @Id
Конфигурация источника данных (DataSource):
Spring Boot автоматически настраивает DataSource на основе свойств, указанных в application.properties или application.yml.
Например:
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=secret
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
Эти настройки необходимы для подключения к базе данных, где хранятся сущности с первичными ключами.
Конфигурация JPA:
Spring Boot автоматически настраивает JPA через свойства, такие как:
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect
Свойство spring.jpa.hibernate.ddl-auto управляет созданием и обновлением схемы базы данных, включая таблицы и первичные ключи.
Интеграция с Hibernate:
Hibernate, как JPA-провайдер, использует аннотацию @Id для создания SQL-запросов, таких как INSERT, UPDATE, SELECT, и DELETE, где первичный ключ играет ключевую роль.
Обработка значений @Id
При сохранении сущности (persist), JPA проверяет, что поле, помеченное @Id, имеет уникальное значение.
Если поле @Id имеет значение null, JPA интерпретирует это как новую сущность и генерирует для неё новый первичный ключ (если используется стратегия генерации ключей, например, @GeneratedValue).
При поиске сущности (find), JPA использует значение @Id для выполнения запроса SELECT по первичному ключу.
Варианты настройки
Генерация значений первичного ключа:
Аннотация @Id часто используется вместе с @GeneratedValue, которая определяет стратегию генерации первичного ключа.
Составные ключи:
Если требуется составной ключ, вместо @Id используется @EmbeddedId или @IdClass.
#Java #Training #Hard #Spring #SpringDataJPA #Id
Что выведет код?
#Tasks
public class Task030325 {
public static void main(String[] args) {
double a = 0.7;
double b = 0.9;
double result = Math.min(a + 0.2, b);
System.out.println(result);
}
}
#Tasks
Please open Telegram to view this post
VIEW IN TELEGRAM
Вопросы с собеседования 👩💻
Какой метод используется для удаления пробелов в начале и конце строки?
Какой метод используется для удаления пробелов в начале и конце строки?
Anonymous Quiz
20%
removeSpaces()
4%
cut()
61%
trim()
15%
strip()
Аннотация @GeneratedValue
Аннотация @GeneratedValue используется в Java Persistence API (JPA) для указания стратегии генерации значений первичного ключа (primary key) для сущности. Она применяется совместно с аннотацией @Id и находится в пакете javax.persistence (или jakarta.persistence в Jakarta EE). Эта аннотация позволяет автоматически генерировать уникальные значения для первичных ключей, что упрощает управление идентификаторами в базе данных.
Аннотация @GeneratedValue принимает два необязательных параметра:
strategy: Определяет стратегию генерации значений. Тип данных — GenerationType.
generator: Указывает имя генератора, который используется для создания значений. Тип данных — String.
Настройки и значения
Параметр strategy:
Определяет, как будут генерироваться значения первичного ключа.
Доступные стратегии:
GenerationType.AUTO (по умолчанию): JPA автоматически выбирает подходящую стратегию на основе используемой базы данных.
GenerationType.IDENTITY: Использует встроенный механизм автоинкремента базы данных (например, AUTO_INCREMENT в MySQL или SERIAL в PostgreSQL).
GenerationType.SEQUENCE: Использует последовательность (sequence) базы данных для генерации значений.
GenerationType.TABLE: Использует отдельную таблицу для хранения и генерации значений первичных ключей.
Параметр generator:
Указывает имя генератора, который должен быть определён с помощью аннотации @SequenceGenerator или @TableGenerator. Это позволяет настроить дополнительные параметры для генерации значений.
Жизненный цикл
Аннотация @GeneratedValue применяется на этапе загрузки метаданных сущности (во время инициализации контекста Spring или при развертывании приложения).
Значение для поля, помеченного @GeneratedValue, генерируется:
При вставке новой сущности в базу данных (persist).
В зависимости от стратегии, значение может генерироваться базой данных или JPA-провайдером (например, Hibernate).
Механизмы Spring и настройки Spring Boot
Spring Data JPA использует аннотацию @GeneratedValue для интеграции с JPA-провайдером (например, Hibernate).
При старте приложения Spring Boot автоматически сканирует сущности, помеченные аннотацией @Entity, и анализирует их поля, включая те, что помечены @Id и @GeneratedValue.
Spring Boot настраивает EntityManagerFactory и DataSource, которые используются JPA для работы с базой данных.
Настройки Spring Boot, предшествующие работе @GeneratedValue
Конфигурация источника данных (DataSource):
Spring Boot автоматически настраивает DataSource на основе свойств, указанных в application.properties или application.yml.
Например:
Конфигурация JPA:
Spring Boot автоматически настраивает JPA через свойства, такие как:
#Java #Training #Hard #Spring #SpringDataJPA #GeneratedValue
Аннотация @GeneratedValue используется в Java Persistence API (JPA) для указания стратегии генерации значений первичного ключа (primary key) для сущности. Она применяется совместно с аннотацией @Id и находится в пакете javax.persistence (или jakarta.persistence в Jakarta EE). Эта аннотация позволяет автоматически генерировать уникальные значения для первичных ключей, что упрощает управление идентификаторами в базе данных.
Аннотация @GeneratedValue принимает два необязательных параметра:
strategy: Определяет стратегию генерации значений. Тип данных — GenerationType.
generator: Указывает имя генератора, который используется для создания значений. Тип данных — String.
Настройки и значения
Параметр strategy:
Определяет, как будут генерироваться значения первичного ключа.
Доступные стратегии:
GenerationType.AUTO (по умолчанию): JPA автоматически выбирает подходящую стратегию на основе используемой базы данных.
GenerationType.IDENTITY: Использует встроенный механизм автоинкремента базы данных (например, AUTO_INCREMENT в MySQL или SERIAL в PostgreSQL).
GenerationType.SEQUENCE: Использует последовательность (sequence) базы данных для генерации значений.
GenerationType.TABLE: Использует отдельную таблицу для хранения и генерации значений первичных ключей.
Параметр generator:
Указывает имя генератора, который должен быть определён с помощью аннотации @SequenceGenerator или @TableGenerator. Это позволяет настроить дополнительные параметры для генерации значений.
Жизненный цикл
Аннотация @GeneratedValue применяется на этапе загрузки метаданных сущности (во время инициализации контекста Spring или при развертывании приложения).
Значение для поля, помеченного @GeneratedValue, генерируется:
При вставке новой сущности в базу данных (persist).
В зависимости от стратегии, значение может генерироваться базой данных или JPA-провайдером (например, Hibernate).
Механизмы Spring и настройки Spring Boot
Spring Data JPA использует аннотацию @GeneratedValue для интеграции с JPA-провайдером (например, Hibernate).
При старте приложения Spring Boot автоматически сканирует сущности, помеченные аннотацией @Entity, и анализирует их поля, включая те, что помечены @Id и @GeneratedValue.
Spring Boot настраивает EntityManagerFactory и DataSource, которые используются JPA для работы с базой данных.
Настройки Spring Boot, предшествующие работе @GeneratedValue
Конфигурация источника данных (DataSource):
Spring Boot автоматически настраивает DataSource на основе свойств, указанных в application.properties или application.yml.
Например:
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=secret
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
Эти настройки необходимы для подключения к базе данных, где хранятся сущности с первичными ключами.
Конфигурация JPA:
Spring Boot автоматически настраивает JPA через свойства, такие как:
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect
Свойство spring.jpa.hibernate.ddl-auto управляет созданием и обновлением схемы базы данных, включая таблицы и первичные ключи.
#Java #Training #Hard #Spring #SpringDataJPA #GeneratedValue
Обработка значений @GeneratedValue
При вставке новой сущности (persist), JPA проверяет, что поле, помеченное @Id и @GeneratedValue, имеет значение null.
В зависимости от стратегии, значение генерируется:
GenerationType.IDENTITY: Значение генерируется базой данных, и JPA получает его после выполнения вставки.
GenerationType.SEQUENCE: JPA запрашивает следующее значение из последовательности базы данных перед вставкой.
GenerationType.TABLE: JPA использует отдельную таблицу для генерации значений.
GenerationType.AUTO: JPA выбирает подходящую стратегию на основе базы данных.
Варианты настройки
Использование @SequenceGenerator:
Если используется стратегия GenerationType.SEQUENCE, можно настроить последовательность с помощью аннотации @SequenceGenerator.
Например:
Параметры @SequenceGenerator:
name: Имя генератора.
sequenceName: Имя последовательности в базе данных.
allocationSize: Количество значений, которые будут предварительно выделены.
Использование @TableGenerator:
Если используется стратегия GenerationType.TABLE, можно настроить таблицу для генерации значений с помощью аннотации @TableGenerator.
Например:
Параметры @TableGenerator:
name: Имя генератора.
table: Имя таблицы для хранения значений.
pkColumnName: Имя столбца, хранящего имена генераторов.
valueColumnName: Имя столбца, хранящего значения.
Пример использования
В этом примере:
Поле id помечено аннотацией @Id и @GeneratedValue.
Стратегия GenerationType.IDENTITY указывает, что значение id будет генерироваться базой данных автоматически.
#Java #Training #Hard #Spring #SpringDataJPA #GeneratedValue
При вставке новой сущности (persist), JPA проверяет, что поле, помеченное @Id и @GeneratedValue, имеет значение null.
В зависимости от стратегии, значение генерируется:
GenerationType.IDENTITY: Значение генерируется базой данных, и JPA получает его после выполнения вставки.
GenerationType.SEQUENCE: JPA запрашивает следующее значение из последовательности базы данных перед вставкой.
GenerationType.TABLE: JPA использует отдельную таблицу для генерации значений.
GenerationType.AUTO: JPA выбирает подходящую стратегию на основе базы данных.
Варианты настройки
Использование @SequenceGenerator:
Если используется стратегия GenerationType.SEQUENCE, можно настроить последовательность с помощью аннотации @SequenceGenerator.
Например:
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "user_seq")
@SequenceGenerator(name = "user_seq", sequenceName = "USER_SEQ", allocationSize = 1)
private Long id;
Параметры @SequenceGenerator:
name: Имя генератора.
sequenceName: Имя последовательности в базе данных.
allocationSize: Количество значений, которые будут предварительно выделены.
Использование @TableGenerator:
Если используется стратегия GenerationType.TABLE, можно настроить таблицу для генерации значений с помощью аннотации @TableGenerator.
Например:
@Id
@GeneratedValue(strategy = GenerationType.TABLE, generator = "user_table_gen")
@TableGenerator(name = "user_table_gen", table = "ID_GEN", pkColumnName = "GEN_NAME", valueColumnName = "GEN_VALUE")
private Long id;
Параметры @TableGenerator:
name: Имя генератора.
table: Имя таблицы для хранения значений.
pkColumnName: Имя столбца, хранящего имена генераторов.
valueColumnName: Имя столбца, хранящего значения.
Пример использования
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
// Геттеры и сеттеры
}
В этом примере:
Поле id помечено аннотацией @Id и @GeneratedValue.
Стратегия GenerationType.IDENTITY указывает, что значение id будет генерироваться базой данных автоматически.
#Java #Training #Hard #Spring #SpringDataJPA #GeneratedValue
This media is not supported in your browser
VIEW IN TELEGRAM
#Mems. Когда передвигаешь таски на следующий спринт.
Аннотация @Column
Аннотация @Column используется в Java Persistence API (JPA) для настройки сопоставления поля или свойства сущности с колонкой таблицы базы данных. Она находится в пакете javax.persistence (или jakarta.persistence в Jakarta EE). Эта аннотация позволяет задавать дополнительные параметры для колонки, такие как имя, возможность значения null, уникальность, длина и другие атрибуты.
Аннотация @Column принимает следующие параметры:
name: Имя колонки в таблице базы данных (по умолчанию используется имя поля или свойства).
unique: Указывает, должно ли значение в колонке быть уникальным (по умолчанию false).
nullable: Указывает, может ли колонка содержать значения null (по умолчанию true).
insertable: Указывает, включается ли колонка в SQL-запросы INSERT (по умолчанию true).
updatable: Указывает, включается ли колонка в SQL-запросы UPDATE (по умолчанию true).
length: Максимальная длина для строковых колонок (по умолчанию 255).
precision: Точность для числовых колонок (например, для DECIMAL).
scale: Масштаб для числовых колонок (например, количество знаков после запятой для DECIMAL).
columnDefinition: Позволяет задать SQL-определение колонки (например, VARCHAR(100) NOT NULL).
table: Указывает таблицу, к которой относится колонка (если сущность сопоставлена с несколькими таблицами).
Жизненный цикл
Аннотация @Column применяется на этапе загрузки метаданных сущности (во время инициализации контекста Spring или при развертывании приложения).
Параметры аннотации используются JPA-провайдером (например, Hibernate) для:
Создания схемы базы данных (если используется автоматическое создание таблиц).
Генерации SQL-запросов (например, INSERT, UPDATE, SELECT).
Валидации данных перед их сохранением в базу данных.
Механизмы Spring и настройки Spring Boot
Механизмы Spring, связанные с @Column
Spring Data JPA использует аннотацию @Column для интеграции с JPA-провайдером (например, Hibernate).
При старте приложения Spring Boot автоматически сканирует сущности, помеченные аннотацией @Entity, и анализирует их поля, включая те, что помечены @Column.
Spring Boot настраивает EntityManagerFactory и DataSource, которые используются JPA для работы с базой данных.
Настройки Spring Boot, предшествующие работе @Column
Конфигурация источника данных (DataSource):
Spring Boot автоматически настраивает DataSource на основе свойств, указанных в application.properties или application.yml.
Например:
Конфигурация JPA:
Spring Boot автоматически настраивает JPA через свойства, такие как:
#Java #Training #Hard #Spring #SpringDataJPA #Column
Аннотация @Column используется в Java Persistence API (JPA) для настройки сопоставления поля или свойства сущности с колонкой таблицы базы данных. Она находится в пакете javax.persistence (или jakarta.persistence в Jakarta EE). Эта аннотация позволяет задавать дополнительные параметры для колонки, такие как имя, возможность значения null, уникальность, длина и другие атрибуты.
Аннотация @Column принимает следующие параметры:
name: Имя колонки в таблице базы данных (по умолчанию используется имя поля или свойства).
unique: Указывает, должно ли значение в колонке быть уникальным (по умолчанию false).
nullable: Указывает, может ли колонка содержать значения null (по умолчанию true).
insertable: Указывает, включается ли колонка в SQL-запросы INSERT (по умолчанию true).
updatable: Указывает, включается ли колонка в SQL-запросы UPDATE (по умолчанию true).
length: Максимальная длина для строковых колонок (по умолчанию 255).
precision: Точность для числовых колонок (например, для DECIMAL).
scale: Масштаб для числовых колонок (например, количество знаков после запятой для DECIMAL).
columnDefinition: Позволяет задать SQL-определение колонки (например, VARCHAR(100) NOT NULL).
table: Указывает таблицу, к которой относится колонка (если сущность сопоставлена с несколькими таблицами).
Жизненный цикл
Аннотация @Column применяется на этапе загрузки метаданных сущности (во время инициализации контекста Spring или при развертывании приложения).
Параметры аннотации используются JPA-провайдером (например, Hibernate) для:
Создания схемы базы данных (если используется автоматическое создание таблиц).
Генерации SQL-запросов (например, INSERT, UPDATE, SELECT).
Валидации данных перед их сохранением в базу данных.
Механизмы Spring и настройки Spring Boot
Механизмы Spring, связанные с @Column
Spring Data JPA использует аннотацию @Column для интеграции с JPA-провайдером (например, Hibernate).
При старте приложения Spring Boot автоматически сканирует сущности, помеченные аннотацией @Entity, и анализирует их поля, включая те, что помечены @Column.
Spring Boot настраивает EntityManagerFactory и DataSource, которые используются JPA для работы с базой данных.
Настройки Spring Boot, предшествующие работе @Column
Конфигурация источника данных (DataSource):
Spring Boot автоматически настраивает DataSource на основе свойств, указанных в application.properties или application.yml.
Например:
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=secret
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
Эти настройки необходимы для подключения к базе данных, где хранятся сущности.
Конфигурация JPA:
Spring Boot автоматически настраивает JPA через свойства, такие как:
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect
Свойство spring.jpa.hibernate.ddl-auto управляет созданием и обновлением схемы базы данных, включая таблицы и колонки.
#Java #Training #Hard #Spring #SpringDataJPA #Column
Обработка значений @Column
При создании или обновлении схемы базы данных, JPA-провайдер использует параметры аннотации @Column для определения типа и атрибутов колонки.
При выполнении SQL-запросов, JPA учитывает параметры insertable и updatable, чтобы определить, должна ли колонка участвовать в операции.
При валидации данных, JPA проверяет параметры nullable, length, precision и scale.
Варианты настройки
Кастомное именование колонок:
Уникальные колонки:
Непустые колонки:
Кастомное SQL-определение:
Пример использования
В этом примере:
Поле name сопоставляется с колонкой user_name, которая не может быть null и имеет максимальную длину 100 символов.
Поле email должно быть уникальным и не может быть null.
Поле password имеет кастомное SQL-определение.
#Java #Training #Hard #Spring #SpringDataJPA #Column
При создании или обновлении схемы базы данных, JPA-провайдер использует параметры аннотации @Column для определения типа и атрибутов колонки.
При выполнении SQL-запросов, JPA учитывает параметры insertable и updatable, чтобы определить, должна ли колонка участвовать в операции.
При валидации данных, JPA проверяет параметры nullable, length, precision и scale.
Варианты настройки
Кастомное именование колонок:
@Column(name = "user_name")
private String name;
Уникальные колонки:
@Column(unique = true)
private String email;
Непустые колонки:
@Column(nullable = false)
private String password;
Кастомное SQL-определение:
@Column(columnDefinition = "VARCHAR(100) NOT NULL")
private String name;
Пример использования
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "user_name", nullable = false, length = 100)
private String name;
@Column(unique = true, nullable = false)
private String email;
@Column(columnDefinition = "VARCHAR(255) NOT NULL")
private String password;
// Геттеры и сеттеры
}
В этом примере:
Поле name сопоставляется с колонкой user_name, которая не может быть null и имеет максимальную длину 100 символов.
Поле email должно быть уникальным и не может быть null.
Поле password имеет кастомное SQL-определение.
#Java #Training #Hard #Spring #SpringDataJPA #Column