【发布时间】:2019-07-10 06:43:28
【问题描述】:
我是使用 spring 和 hibernate 的新手。 我想按照这个Schema设计数据库
学生、班级和学校是实体。存在关系 Studies_in(Student 和 Class 之间 - 一对一,student_id 和 class_id 作为外键)和 belongs_to(Class 和 School 之间 - 多对一,class_id 和 school_id 作为外键)。
方法一:
我可以有一个班级学生如下:
@Entity
@Table(name="student")
public class Student {
@Id
@GeneratedValue(strategy= GenerationType.IDENTITY)
@Column(name="id")
private int id;
...
@OneToOne
@JoinColumn(name="class_id")
private Class class;
...
}
对于类实体也是如此。
方法二:
这是正确的方法吗,还是我应该将关系表示为表,通过如下的 sql 查询创建它们:
create table studies_in(student_id int, class_id int,
primary key(student_id,class_id),
foreign key(student_id) references student(id),
foreign key(class_id) references class(id));
然后为 Studies_in 创建类。
前面的方法关系存在于应用程序级别,而在这种方法中它物理地存在于数据库中。 我觉得第二种方法更好,因为数据库会被规范化,但我不知道如何在 spring 中实现它。
如果我错了,请纠正我。
我该如何处理?
【问题讨论】:
标签: mysql hibernate spring-mvc hibernate-mapping entity-relationship