【发布时间】:2011-07-08 19:17:38
【问题描述】:
有没有办法告诉 JPA 在创建表时不要在 OneToMany 关系上创建外键?这是我正在尝试做的一些示例代码:
我有两个名为 Project 和 Group 的实体。每个项目可以包含许多博客,每个组可以包含许多博客。但是,只有一个博客表可以存储所有博客。 Blog 表有一个名为 containerId 的列,其中包含父容器的 ID。例如,如果博客属于 ID 为 100 的组,则 blog 的 containerId 列的值为 100。
@OneToMany(fetch=FetchType.EAGER, mappedBy="containerId")
@Where(clause="containertype=600")
public Set<BlogEntity> getBlogs() {
return blogs;
}
当我尝试使用有效的组 ID 将博客插入博客表时,我收到一个休眠错误,提示“违反完整性约束 - 没有父 FK84B5A4F0388ED18F 表:语句中的项目”。看起来 Project 和 Group 都试图在 blog 表的同一列 (containerId) 上创建外键。我该如何解决这个问题?
【问题讨论】:
标签: hibernate