Hibernate、Spring和外键

7

我正在开发一个基于Hibernate和Spring的项目,以帮助我理解这两个框架的基础知识。我遇到了一个问题,我想能够向我的表中添加外键。

我一直在浏览互联网上关于这个主题的信息,但我还没有找到适合我需求的内容。

我有两个类:

 Schools
 Classes

现在我想将Schools表的主键映射到Classes表。

这是我现在拥有的代码:

@ManyToOne
@JoinColumn(name = "SCHOOL_ID", table = "SCHOOL")
private School school;

对于我的getter和setter:

public long getSchool() {
    return school.getId();
}

public void setSchool(long schoolId) {
    this.school.setId(schoolId);
}

这是正确的方法吗?还是我完全看错了。

谢谢!

2个回答

10

你走在了正确的道路上,尽管最好处理实际的对象而不是ID,例如:

@ManyToOne
@JoinColumn(name = "SCHOOL_ID", table = "SCHOOL")
private School school;


public School getSchool() {
    return school;
}

public void setSchool(School school) {
    this.school=school;
}

我有一个类似的情况...不过在这个映射中,你能否停止在表中插入一个已经存在于学校表中的学校类? - working

0

将其更改为:

public long getSchool() {
    return this.school;
}

public void setSchool(School school) {
    this.school = school;
}

因为答案不正确(仅使用建议的更改的代码将不再编译,因为OP明确将“school”定义为类型“School”,而不是“long”),并且答案没有解释为什么这将是一个好的或正确的更改,所以被踩了。 - Frans

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接