【发布时间】:2020-02-09 03:46:46
【问题描述】:
我们的 PostgreSQL 数据库有 200 多个表,我们想尝试一下 Hibernate 的“逆向工程”,以避免手动编写所有 VO 和/或实体类。。 p>
但是,我们的数据库中有一些古怪的外键,我想在进入未知领域之前了解 Hibernate 是如何建模的。这是一个显示“分叉外键”(为了影响而被夸大)的示例,我认为它可以很好地描述我们所面临的情况:
create table person (
id int primary key not null,
sid int not null unique,
name varchar(30)
);
insert into person (id, sid, name) values
(1, 3, 'Victor'),
(2, 4, 'Juliett'),
(3, 5, 'Oscar'),
(4, 1, 'Romeo'),
(5, 2, 'Mike');
create table applicant (
id int primary key not null,
sid int not null unique,
referrer_id int not null, -- THIS IS THE FORKING FOREIGN KEY!
foreign key (referrer_id) references applicant (id), -- fk #1
foreign key (referrer_id) references applicant (sid), -- fk #2
foreign key (referrer_id) references person (id), -- fk #3
foreign key (referrer_id) references person (sid), -- fk #4
friend_id int not null,
foreign key (friend_id) references applicant (id) -- fk #5
);
insert into applicant (id, sid, referrer_id, friend_id) values
(1, 2, 3, 5),
(2, 5, 1, 3),
(3, 4, 5, 2),
(4, 1, 1, 4),
(5, 3, 2, 3);
自从applicant 表中的referrer_id 指向 到四个不同的地方...... Hibernate 如何在逆向工程的同时模拟这个分叉 FK?
它会产生四个独立的属性,每个父级一次吗?或者可能是四种不同的方法,每个父母一种?
【问题讨论】:
标签: sql database hibernate code-generation reverse-engineering