@Entity
Аннотация @Entity является частью Java Persistence API (JPA) и используется для обозначения класса как сущности, которая может быть сохранена в базе данных. Сущность — это объект, который отображается на таблицу в реляционной базе данных. Аннотация @Entity указывает, что класс должен быть управляемым JPA и что его экземпляры могут быть сохранены, обновлены, удалены или извлечены из базы данных.
Ранее аннотация @Entity находилась в пакете javax.persistence, который является частью стандартной библиотеки JPA. Начиная с Java EE 7 и Jakarta EE 8, пакет был переименован в jakarta.persistence. Таким образом, в зависимости от версии JPA, аннотация может быть импортирована следующим образом:
Для JPA 2.x и ниже:
Для JPA 3.x и выше (Jakarta Persistence):
Параметры аннотации
Аннотация @Entity не имеет параметров. Однако она тесно связана с другими аннотациями, которые определяют поведение сущности:
@Table:
Используется для указания имени таблицы в базе данных, на которую отображается сущность.
@Id:
Указывает на поле, которое является первичным ключом сущности.
@Column:
Используется для настройки отображения поля на колонку таблицы.
@GeneratedValue:
Указывает стратегию генерации значений для первичного ключа.
Жизненный цикл сущности
Сущности в JPA проходят через несколько состояний, которые управляются EntityManager. Эти состояния определяют, как сущность взаимодействует с базой данных и контекстом persistence.
New (Transient):
Сущность только что создана с помощью оператора new, но еще не связана с EntityManager.
Она не имеет представления в базе данных.
Пример:
Managed (Persistent):
Сущность связана с EntityManager и управляется им.
Любые изменения в сущности будут автоматически синхронизированы с базой данных при вызове flush() или завершении транзакции.
Пример:
Detached:
Сущность больше не управляется EntityManager, но продолжает существовать в базе данных.
Это может произойти после закрытия EntityManager или вызова detach().
Пример:
Removed:
Сущность помечена на удаление и будет удалена из базы данных при следующем вызове flush() или завершении транзакции.
Пример:
Настройки Spring Boot, влияющие на @Entity
Spring Boot предоставляет множество настроек, которые влияют на работу сущностей и JPA. Эти настройки обычно указываются в файле application.properties или application.yml.
Настройки источника данных (DataSource):
Эти настройки определяют, как Spring Boot подключается к базе данных.
Пример:
Настройки JPA:
Эти настройки влияют на поведение JPA и Hibernate.
Пример:
Параметр ddl-auto может принимать следующие значения:
none: Никаких изменений в схеме базы данных не вносится.
create: Схема базы данных создается заново при каждом запуске приложения.
update: Схема базы данных обновляется в соответствии с текущими сущностями.
create-drop: Схема создается при запуске и удаляется при завершении работы приложения.
validate: Проверяется, соответствует ли схема базы данных сущностям.
Сканирование сущностей:
Spring Boot автоматически сканирует пакеты на наличие классов, помеченных аннотацией @Entity.
Если сущности находятся в другом пакете, можно указать его вручную:
#Java #Training #Hard #Spring #SpringDataJPA #Entity
Аннотация @Entity является частью Java Persistence API (JPA) и используется для обозначения класса как сущности, которая может быть сохранена в базе данных. Сущность — это объект, который отображается на таблицу в реляционной базе данных. Аннотация @Entity указывает, что класс должен быть управляемым JPA и что его экземпляры могут быть сохранены, обновлены, удалены или извлечены из базы данных.
Ранее аннотация @Entity находилась в пакете javax.persistence, который является частью стандартной библиотеки JPA. Начиная с Java EE 7 и Jakarta EE 8, пакет был переименован в jakarta.persistence. Таким образом, в зависимости от версии JPA, аннотация может быть импортирована следующим образом:
Для JPA 2.x и ниже:
import javax.persistence.Entity;
Для JPA 3.x и выше (Jakarta Persistence):
import jakarta.persistence.Entity;
Параметры аннотации
Аннотация @Entity не имеет параметров. Однако она тесно связана с другими аннотациями, которые определяют поведение сущности:
@Table:
Используется для указания имени таблицы в базе данных, на которую отображается сущность.
@Id:
Указывает на поле, которое является первичным ключом сущности.
@Column:
Используется для настройки отображения поля на колонку таблицы.
@GeneratedValue:
Указывает стратегию генерации значений для первичного ключа.
Жизненный цикл сущности
Сущности в JPA проходят через несколько состояний, которые управляются EntityManager. Эти состояния определяют, как сущность взаимодействует с базой данных и контекстом persistence.
New (Transient):
Сущность только что создана с помощью оператора new, но еще не связана с EntityManager.
Она не имеет представления в базе данных.
Пример:
User user = new User();
Managed (Persistent):
Сущность связана с EntityManager и управляется им.
Любые изменения в сущности будут автоматически синхронизированы с базой данных при вызове flush() или завершении транзакции.
Пример:
entityManager.persist(user); // Сущность становится управляемой
Detached:
Сущность больше не управляется EntityManager, но продолжает существовать в базе данных.
Это может произойти после закрытия EntityManager или вызова detach().
Пример:
entityManager.detach(user); // Сущность становится отсоединенной
Removed:
Сущность помечена на удаление и будет удалена из базы данных при следующем вызове flush() или завершении транзакции.
Пример:
entityManager.remove(user); // Сущность помечена на удаление
Настройки Spring Boot, влияющие на @Entity
Spring Boot предоставляет множество настроек, которые влияют на работу сущностей и JPA. Эти настройки обычно указываются в файле application.properties или application.yml.
Настройки источника данных (DataSource):
Эти настройки определяют, как Spring Boot подключается к базе данных.
Пример:
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:
Эти настройки влияют на поведение JPA и Hibernate.
Пример:
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect
Параметр ddl-auto может принимать следующие значения:
none: Никаких изменений в схеме базы данных не вносится.
create: Схема базы данных создается заново при каждом запуске приложения.
update: Схема базы данных обновляется в соответствии с текущими сущностями.
create-drop: Схема создается при запуске и удаляется при завершении работы приложения.
validate: Проверяется, соответствует ли схема базы данных сущностям.
Сканирование сущностей:
Spring Boot автоматически сканирует пакеты на наличие классов, помеченных аннотацией @Entity.
Если сущности находятся в другом пакете, можно указать его вручную:
spring.jpa.entity-scan.packages=com.example.entities
#Java #Training #Hard #Spring #SpringDataJPA #Entity
Настройки кэширования:
Spring Boot поддерживает кэширование сущностей через Hibernate или другие провайдеры.
Пример:
Настройки пула соединений:
Spring Boot позволяет настроить пул соединений для оптимизации производительности.
Пример (для HikariCP):
Механизмы Spring и JPA, связанные с @Entity
EntityManagerFactory:
EntityManagerFactory создается при запуске приложения и отвечает за создание EntityManager.
В Spring Boot это настраивается автоматически через LocalContainerEntityManagerFactoryBean.
EntityManager:
EntityManager управляет жизненным циклом сущностей и выполняет операции CRUD.
В Spring Boot EntityManager инжектируется через @PersistenceContext.
Транзакции:
Spring Boot управляет транзакциями через PlatformTransactionManager.
Аннотация @Transactional используется для определения границ транзакций.
Репозитории:
Spring Data JPA предоставляет репозитории, которые упрощают работу с сущностями.
Пример:
Пример полной настройки Spring Boot с @Entity
Класс сущности:
Репозиторий:
Настройки в application.properties:
#Java #Training #Hard #Spring #SpringDataJPA #Entity
Spring Boot поддерживает кэширование сущностей через Hibernate или другие провайдеры.
Пример:
spring.jpa.properties.hibernate.cache.use_second_level_cache=true
spring.jpa.properties.hibernate.cache.region.factory_class=org.hibernate.cache.ehcache.EhCacheRegionFactory
Настройки пула соединений:
Spring Boot позволяет настроить пул соединений для оптимизации производительности.
Пример (для HikariCP):
spring.datasource.hikari.maximum-pool-size=10
spring.datasource.hikari.minimum-idle=2
Механизмы Spring и JPA, связанные с @Entity
EntityManagerFactory:
EntityManagerFactory создается при запуске приложения и отвечает за создание EntityManager.
В Spring Boot это настраивается автоматически через LocalContainerEntityManagerFactoryBean.
EntityManager:
EntityManager управляет жизненным циклом сущностей и выполняет операции CRUD.
В Spring Boot EntityManager инжектируется через @PersistenceContext.
Транзакции:
Spring Boot управляет транзакциями через PlatformTransactionManager.
Аннотация @Transactional используется для определения границ транзакций.
Репозитории:
Spring Data JPA предоставляет репозитории, которые упрощают работу с сущностями.
Пример:
public interface UserRepository extends JpaRepository<User, Long> { ... }
Пример полной настройки Spring Boot с @Entity
Класс сущности:
@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "username", nullable = false, length = 50)
private String username;
@Column(name = "email", unique = true)
private String email;
// Геттеры и сеттеры
}
Репозиторий:
public interface UserRepository extends JpaRepository<User, Long> { ... }
Настройки в application.properties:
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=secret
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
#Java #Training #Hard #Spring #SpringDataJPA #Entity
Что выведет код?
#Tasks
import java.util.HashSet;
import java.util.Set;
record Person28(
String name,
int age
) {}
public class Task280225 {
public static void main(String[] args) {
Set<Person28> set = new HashSet<>();
set.add(new Person28("Alice", 25));
set.add(new Person28("Bob", 30));
set.add(new Person28("Alice", 25));
set.remove(set.iterator().next());
System.out.println(set);
}
}
#Tasks
Please open Telegram to view this post
VIEW IN TELEGRAM
Вопросы с собеседования 👩💻
Что такое Comparator в Java?
Что такое Comparator в Java?
Anonymous Quiz
5%
Класс для работы с массивами
20%
Метод для сортировки строк
7%
Интерфейс для работы с файлами
68%
Интерфейс для сравнения объектов
Аннотация @Table
Аннотация @Table используется в JPA (Java Persistence API) для указания деталей отображения сущности на таблицу в базе данных. Она применяется к классу, помеченному аннотацией @Entity, и позволяет задать имя таблицы, схему, каталог и другие параметры, связанные с таблицей в базе данных.
Аннотация @Table, как и @Entity, находится в пакете javax.persistence (для JPA 2.x и ниже) или jakarta.persistence (для JPA 3.x и выше). Импорт выглядит следующим образом:
Для JPA 2.x:
Для JPA 3.x:
Параметры аннотации
Аннотация @Table имеет несколько параметров, которые позволяют настроить отображение сущности на таблицу:
name:
Указывает имя таблицы в базе данных.
По умолчанию используется имя класса сущности.
Пример:
schema:
Указывает схему базы данных, в которой находится таблица.
По умолчанию используется схема по умолчанию для подключения к базе данных.
Пример:
catalog:
Указывает каталог базы данных, в котором находится таблица.
По умолчанию используется каталог по умолчанию для подключения к базе данных.
Пример:
uniqueConstraints:
Позволяет задать уникальные ограничения для таблицы.
Принимает массив аннотаций @UniqueConstraint.
Пример:
indexes:
Позволяет задать индексы для таблицы.
Принимает массив аннотаций @Index.
Пример:
Механизмы Spring и JPA, связанные с @Table
Отображение сущности на таблицу:
Когда Spring Boot инициализирует JPA, он анализирует аннотацию @Table и создает метаданные для отображения сущности на таблицу в базе данных.
Если параметры name, schema или catalog не указаны, используются значения по умолчанию.
Генерация схемы базы данных:
Если параметр spring.jpa.hibernate.ddl-auto настроен на create, update или create-drop, Hibernate автоматически создаст или обновит таблицу в соответствии с аннотацией @Table.
Пример:
Уникальные ограничения и индексы:
Уникальные ограничения и индексы, заданные через @Table, создаются в базе данных при генерации схемы.
Эти ограничения проверяются на уровне базы данных, что обеспечивает целостность данных.
Интеграция с EntityManager:
EntityManager использует метаданные, созданные на основе аннотации @Table, для выполнения операций с базой данных.
Например, при выполнении запроса SELECT * FROM users, EntityManager знает, что таблица users соответствует сущности User.
#Java #Training #Hard #Spring #SpringDataJPA #Table
Аннотация @Table используется в JPA (Java Persistence API) для указания деталей отображения сущности на таблицу в базе данных. Она применяется к классу, помеченному аннотацией @Entity, и позволяет задать имя таблицы, схему, каталог и другие параметры, связанные с таблицей в базе данных.
Аннотация @Table, как и @Entity, находится в пакете javax.persistence (для JPA 2.x и ниже) или jakarta.persistence (для JPA 3.x и выше). Импорт выглядит следующим образом:
Для JPA 2.x:
import javax.persistence.Table;
Для JPA 3.x:
import jakarta.persistence.Table;
Параметры аннотации
Аннотация @Table имеет несколько параметров, которые позволяют настроить отображение сущности на таблицу:
name:
Указывает имя таблицы в базе данных.
По умолчанию используется имя класса сущности.
Пример:
@Table(name = "users")
schema:
Указывает схему базы данных, в которой находится таблица.
По умолчанию используется схема по умолчанию для подключения к базе данных.
Пример:
@Table(name = "users", schema = "public")
catalog:
Указывает каталог базы данных, в котором находится таблица.
По умолчанию используется каталог по умолчанию для подключения к базе данных.
Пример:
@Table(name = "users", catalog = "my_catalog")
uniqueConstraints:
Позволяет задать уникальные ограничения для таблицы.
Принимает массив аннотаций @UniqueConstraint.
Пример:
@Table(name = "users", uniqueConstraints = {
@UniqueConstraint(columnNames = {"username"}),
@UniqueConstraint(columnNames = {"email"})
})
indexes:
Позволяет задать индексы для таблицы.
Принимает массив аннотаций @Index.
Пример:
@Table(name = "users", indexes = {
@Index(name = "idx_username", columnList = "username"),
@Index(name = "idx_email", columnList = "email")
})
Механизмы Spring и JPA, связанные с @Table
Отображение сущности на таблицу:
Когда Spring Boot инициализирует JPA, он анализирует аннотацию @Table и создает метаданные для отображения сущности на таблицу в базе данных.
Если параметры name, schema или catalog не указаны, используются значения по умолчанию.
Генерация схемы базы данных:
Если параметр spring.jpa.hibernate.ddl-auto настроен на create, update или create-drop, Hibernate автоматически создаст или обновит таблицу в соответствии с аннотацией @Table.
Пример:
spring.jpa.hibernate.ddl-auto=update
Уникальные ограничения и индексы:
Уникальные ограничения и индексы, заданные через @Table, создаются в базе данных при генерации схемы.
Эти ограничения проверяются на уровне базы данных, что обеспечивает целостность данных.
Интеграция с EntityManager:
EntityManager использует метаданные, созданные на основе аннотации @Table, для выполнения операций с базой данных.
Например, при выполнении запроса SELECT * FROM users, EntityManager знает, что таблица users соответствует сущности User.
#Java #Training #Hard #Spring #SpringDataJPA #Table
Пример использования @Table
Настройки Spring Boot, влияющие на @Table
Автоматическая генерация схемы:
Параметр spring.jpa.hibernate.ddl-auto определяет, как Hibernate управляет схемой базы данных.
Возможные значения:
none: Никаких изменений в схеме не вносится.
create: Схема создается заново при каждом запуске.
update: Схема обновляется в соответствии с сущностями.
create-drop: Схема создается при запуске и удаляется при завершении.
validate: Проверяется соответствие схемы сущностям.
Показ SQL-запросов:
Параметр spring.jpa.show-sql позволяет включить вывод SQL-запросов в консоль.
Пример:
Диалект базы данных:
Параметр spring.jpa.properties.hibernate.dialect определяет диалект базы данных.
Пример:
#Java #Training #Hard #Spring #SpringDataJPA #Table
@Entity
@Table(
name = "users",
schema = "public",
catalog = "my_catalog",
uniqueConstraints = {
@UniqueConstraint(columnNames = {"username"}),
@UniqueConstraint(columnNames = {"email"})
},
indexes = {
@Index(name = "idx_username", columnList = "username"),
@Index(name = "idx_email", columnList = "email")
}
)
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "username", nullable = false, length = 50)
private String username;
@Column(name = "email", unique = true)
private String email;
// Геттеры и сеттеры
}
Настройки Spring Boot, влияющие на @Table
Автоматическая генерация схемы:
Параметр spring.jpa.hibernate.ddl-auto определяет, как Hibernate управляет схемой базы данных.
Возможные значения:
none: Никаких изменений в схеме не вносится.
create: Схема создается заново при каждом запуске.
update: Схема обновляется в соответствии с сущностями.
create-drop: Схема создается при запуске и удаляется при завершении.
validate: Проверяется соответствие схемы сущностям.
Показ SQL-запросов:
Параметр spring.jpa.show-sql позволяет включить вывод SQL-запросов в консоль.
Пример:
spring.jpa.show-sql=true
Диалект базы данных:
Параметр spring.jpa.properties.hibernate.dialect определяет диалект базы данных.
Пример:
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect
#Java #Training #Hard #Spring #SpringDataJPA #Table
Всем привет!
Ну вот и выходные... Надеюсь все дождались и все отдыхают😁
Как их проводите, может пишите какой пет-проект?😁
Поделитесь?
Завтрашняя встреча под вопросом, может и будем отдыхать, посмотрим😜
Всем прекрасного отдыха!🌴
На картинке админ пишет пет-проект 😉
Ну вот и выходные... Надеюсь все дождались и все отдыхают
Как их проводите, может пишите какой пет-проект?
Поделитесь?
Завтрашняя встреча под вопросом, может и будем отдыхать, посмотрим
Всем прекрасного отдыха!
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