Я спроектировал модель в JPA (Hibernate).
Все работает очень хорошо.
Затем я запустил Workbench и фактически посмотрел на схему.
Все также выглядит оченьхорошо с первого взгляда (я следил за всем из документов и https://vladmihalcea.com/tutorials/hibernate/)
Давайте сделаем EER Diagram! Бум - никаких отношений ?! Хорошо, что случилось? Я смотрю на вкладку Foreign keys
во всех моих таблицах - ничего, а не один FK. Так что я смотрю DDL - ага! Он использует KEY
. Поэтому, естественно, есть индексы (но это не FK, не так ли?)
DDL:
CREATE TABLE `order` (
`id` bigint(20) NOT NULL,
`changed` datetime DEFAULT NULL,
`creation` datetime DEFAULT NULL,
`seen` bit(1) NOT NULL,
`uuid` binary(255) DEFAULT NULL,
`client_id` bigint(20) DEFAULT NULL,
`issuer_id` bigint(20) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `FKhqad2xyyn10pct9vramixbm8n` (`client_id`),
KEY `FKqs4fxnjxlie9waq3cyav5e06x` (`issuer_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
Сущность (для краткости):
@Entity
@Table(name = "\"order\"")
public class Order
{
@Id
@GeneratedValue
private Long id;
private UUID uuid;
@ManyToOne(fetch = FetchType.LAZY)
private Client client;
@ManyToOne(fetch = FetchType.LAZY)
private Person issuer;
@CreationTimestamp
private ZonedDateTime creation;
private ZonedDateTime changed;
private boolean seen;
}
В этом случае order
сущность владеет отношением для @ManyToOne
sС другой стороны, я использую стандарт:
@OneToMany(mappedBy = "client") // Or issuer
private List<Order> orders = new ArrayList<>();
Мой вопрос - , как мне заставить Hibernate также генерировать "реальные" Foreign Keys
, которые могут быть преобразованы в EER Diagram (и вообще быть "реальным", как я уже говорил).