作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个类别
,其中每个类别可以有多个子级(下级类别)和多个父级(上级类别)。
我按照以下方式映射了它:
@Entity
public class Category {
@Id
public String Url;
@OneToMany
private Set<Category> childs = new HashSet<Category>();
@OneToMany
private Set<Category> parents = new HashSet<Category>();
@OneToMany(cascade=CascadeType.ALL)
private Set<Person> persons = new HashSet<Person>();
public String Title;
public boolean Done;
我发现 Hibernate 使用下表对这个实体进行了编码
CREATE TABLE
category_category
(
Category_Url VARCHAR(255) NOT NULL,
parents_Url VARCHAR(255) NOT NULL,
childs_Url VARCHAR(255) NOT NULL,
PRIMARY KEY (Category_Url, childs_Url),
CONSTRAINT FK8635931F3275D6D7 FOREIGN KEY (Category_Url) REFERENCES category (Url) ,
CONSTRAINT FK8635931F569C2962 FOREIGN KEY (parents_Url) REFERENCES category (Url) ,
CONSTRAINT FK8635931F6ADF3430 FOREIGN KEY (childs_Url) REFERENCES category (Url),
CONSTRAINT parents_Url UNIQUE (parents_Url),
CONSTRAINT childs_Url UNIQUE (childs_Url),
这是绝对错误的,因为某些行的子级和父级彼此不相关,不应包含在一个元组中。
我想 Hibernate 会创建两个表 category_category_1(Category_Url,childs_Url)
和 category_category_2(Category_Url,parents_Url)
并从 this
关联到 child 和另一个——从这个
到 parent 。
为什么 Hibernate 这样做以及如何使它正确地执行?
最佳答案
您可以使用@JoinTable
为链接表指定不同的名称:
@OneToMany @JoinTable(name = "category_category_1")
private Set<Category> childs = new HashSet<Category>();
@OneToMany @JoinTable(name = "category_category_2")
private Set<Category> parents = new HashSet<Category>();
关于java - 如何同时实现多父和多子映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12459946/
对于以下多子脚本: multi sub Screen_get_valid_string($prompt, $accept_empty_string, $max_length = 999) { retu
我正在开发 open-source, cross-platform具有统计支持的番茄计时器。 对于任务,我有一个像这样的树数据结构: class Task { String name;
我是一名优秀的程序员,十分优秀!