Почему аннотация @Table является необязательной в работе CRUD через пружину - PullRequest
0 голосов
/ 05 июня 2019

Я новичок в Spring и Spring-Boot и, изучая Spring CRUD, я просматривал разные статьи и видел эти строки.

"А почему аннотация @Entity обязательна?… Хорошо,это способ создания JPA. Когда вы создаете новую сущность, вы должны сделать как минимум две вещи, аннотирующие ее с помощью @Entity, создать поле id и аннотировать его с помощью @Id. Все остальное необязательно, например, имя таблицыполучено из имени класса сущности (и поэтому аннотация @Table может быть необязательной), столбцы таблицы получены из переменных сущности (и, следовательно, аннотация @Column может быть необязательной) и т. д. ""

Так что мойвопрос заключается в том, как пружина раздвоит таблицы и имена их столбцов, если мы не предоставим аннотации @Table и @Column.

1 Ответ

1 голос
/ 05 июня 2019

Как вы задали свой вопрос в контексте Spring Boot. Есть две опции, которые определяют стратегию именования:

spring.jpa.hibernate.naming.implicit-стратегия

Эта опция используется для определения имен, когда мы не предоставляем имена таблиц и столбцов явно в определении сущности

Обычно по умолчанию это: ImplicitNamingStrategyJpaCompliantImpl

Дополнительные реализации .

spring.jpa.hibernate.naming.physical-стратегия

Это более настраиваемый, подключаемый стратегический контракт для применения правил физического именования имен объектов базы данных.

По умолчанию используется SpringPhysicalNamingStrategy, когда все точки верблюжьей оболочки заменяются символами подчеркивания. Также имена таблиц генерируются в нижнем регистре.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...