Учитывая эти классы (в Java):
@Entity
public class Parent {
@Id
public UUID id = UUID.randomUUID();
@ElementCollection
public Set<Child> children;
}
@Embeddable
public class Child {
@NotNull
@Length(max = 20)
public String s;
}
Я ожидаю, что Hibernate автоматически сгенерирует следующую таблицу для класса Child
:
CREATE TABLE public.parent_children
(
parent_id uuid NOT NULL,
children_s character varying(20) COLLATE pg_catalog."default" NOT NULL,
CONSTRAINT ...
)
Но он игнорируетограничения в Embeddable и генерирует:
CREATE TABLE public.parent_children
(
parent_id uuid NOT NULL,
children_s character varying(255) COLLATE pg_catalog."default",
CONSTRAINT ...
)
1) Что я могу сделать, чтобы решить эту проблему (все еще используя функцию auto-dll Hibernate)?
2) В связи с этим, что я могу сделать, чтобы Hibernate не добавил префикс children_
к именам столбцов?Я знаю, что могу сделать:
@AttributeOverrides({
@AttributeOverride(name="s", column=@Column(name="s"))
})
public Set<Child> children;
Но мне это кажется довольно уродливым.
- Spring Boot 2.0.5
- Hibernate Core 5.2.17