这适用于旧数据库。即使子表列包含父表的PK,此关系中的两个数据库表也没有外键约束。
如果子表在相应的列上没有外键约束,JPA是否支持@OneToMany映射(双向或单向)?
答案 0 :(得分:1)
简短回答:是。
长篇:如果数据库已经存在,JPA是否真的关心外键?如果我们将创建数据库模式的任务留给JPA提供者,它将创建外键,这很好。但是,如果JPA在现有数据库上工作,它只关心是否存在外键和主键列以产生正确的连接。外键不是必需的。
事实上,当我使用Hibernate时,我们有一个使用short
类型的旧数据库,外键列指向另一个表上的int
主键。没有任何外键,但只要我们没有使用validate
hbm2ddl
选项,Hibernate作为JPA提供者工作得很好,忽略了类型不匹配,更不用说缺少外来的了密钥。