我把学校和学生作为实体概念,一个学校可以有多个学生,一个学生只能有一个学校。这在中Map为双向关系 Hibernate
这样地:
@Entity
@Table( name = "SCHOOL" )
public class School
{
@Id
@Type( type = "uuid-char" )
@Column( name = "SCHOOL_ID_",
unique = true,
nullable = false )
private UUID schoolId_;
@OneToMany( mappedBy = "school_",
cascade = CascadeType.ALL,
orphanRemoval = true,
fetch = FetchType.LAZY )
private List< Student > students_;
(...)
@Entity
@Table( name = "STUDENT" )
public class Student
{
@Id
@Type( type = "uuid-char" )
@Column( name = "STUDENT_ID_",
unique = true,
nullable = false )
private UUID studentId_;
@ManyToOne
@JoinColumn( name = "SCHOOL_ID_",
nullable = false )
private School school_;
我决定使用这种双向关系来从自动级联中获益,这样我就可以删除一个学校,并且它的学生将被自动删除,而不会有孤立的数据库条目。
我现在的问题是,这一概念是否被正确地建模为上述现实世界目的的表示,以及是否有助于实现这一目标 Hibernate
. 我在几篇文章中读到,hibernate在没有Map的情况下确实会为查找和删除创建不必要的查询。
暂无答案!
目前还没有任何答案,快来回答吧!