При создании колонок класса-сущности для сохранения значений классов-значений можно переопределить параметры колонок, описанные в помеченных аннотацией @Embeddable классах-значениях. Можно изменить имена колонок и их всевозможные ограничения.
Допустим класс Person содержит поле Address address. Класс Address помечен @Embeddable и хранит данные своих полей в соответствующих колонках таблицы PERSON. Но сами настройки полей указаны в классе Address. Так вот эти настройки легко переопределяются в классе Person.
Подготовка
Создадим базовое веб-приложения на связке Spring Boot 3 + Hibernate + PostgreSQL
Убедитесь, что файле /src/main/resources/application.properties есть следующая строка, позволяющая Hibernate’у автоматически создавать (и обновлять) схему БД при запуске приложения на основании аннотаций в классах предметной области:
| 
					 1  | 
						spring.jpa.hibernate.ddl-auto=update  | 
					
Код
Создадим класс-значение следующего содержания:
| 
					 1 2 3 4 5 6 7 8 9 10 11 12  | 
						@Embeddable public class Address {     @Column(length = 100)     private String city;     @Column(length = 100)     private String street;     private String details; //Конструкторы, геттеры и сеттеры, equals(), hashCode() и т.д. }  | 
					
Как видите мы здесь определили размер колонок, создаваемых для хранения значений полей city и street. Кроме того, неявно заданы имена колонок, они будут совпадать с именами полей.
Создадим класс-сущность, который будет включать в себя также данные из Address:
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17  | 
						@Entity public class Person {     @Id     @GeneratedValue     private Long id;     private String name;     @Embedded     @AttributeOverride(             name = "city",             column = @Column(name = "location", length = 200)     )     private Address homeAddress; //Конструкторы, геттеры и сеттеры, equals(), hashCode() и т.д. }  | 
					
Если мы хотим переопределить настройки колонок класса Address, то мы должны сперва добавить аннотацию @Embedded (для простого «встраивания» никаких аннотаций не нужно). Затем мы добавляем аннотацию @AttributeOverride, где в параметре name указываем имя поля, настройки которого хотим переопределить, а также в параметр column передаём аннотацию @Column со всеми необходимыми параметрами, как если бы мы её размещали прямо над переопределяемым полем.
В данном случае мы для поля city меняем имя колонки на location, а размер VARCHAR колонки на 200 символов (в оригинальных настройках имя так и будет city, а размер — 100 символов).
Над «встраиваемым» полем address можно указать любое необходимое количество аннотаций @AttributeOverride, в которых будут переопределены все нужные поля.
Чтобы проверить результат достаточно просто запустить приложение, а затем в консоли psql посмотреть детали таблицы PERSON:

Как видите поле city было переопределено. Колонка для него называется location и её длина 200 символов.
Мы не переопределяли настройки поля street, поэтому для него так и была создана колонка street. Кроме того, мы указали в настройках длину колонки в 100 символов. Это ограничение также не переопределялось и мы видим его с в схеме БД.