JPA是否支持数据库中没有外键约束的实体之间的@OneToMany映射?

时间:2011-02-22 20:31:32

标签: hibernate jpa ejb-3.0 openjpa

这适用于旧数据库。即使子表列包含父表的PK,此关系中的两个数据库表也没有外键约束。

如果子表在相应的列上没有外键约束,JPA是否支持@OneToMany映射(双向或单向)?

1 个答案:

答案 0 :(得分:1)

简短回答:

长篇:如果数据库已经存在,JPA是否真的关心外键?如果我们将创建数据库模式的任务留给JPA提供者,它将创建外键,这很好。但是,如果JPA在现有数据库上工作,它只关心是否存在外键和主键列以产生正确的连接。外键不是必需的。

事实上,当我使用Hibernate时,我们有一个使用short类型的旧数据库,外键列指向另一个表上的int主键。没有任何外键,但只要我们没有使用validate hbm2ddl选项,Hibernate作为JPA提供者工作得很好,忽略了类型不匹配,更不用说缺少外来的了密钥。