有人能确认我的以下内容吗?
我有以下Entite:
public class Book {
.............
}
public class Student {
@OneToOne
Book favoriteBook
}
public class StudentOrderHistory{
Student student;
@OneToOne
Book lastBook;
}
如果favoriteBook/lastBook只链接到每一个Student或StudentOrderHistory,那么它仍然是@OneToOne关系,还是会是@ManyToOne关系,因为同一BookEntity链接在多个Entite中(此处为Student和StudentOrderHistory(?
如果同一本书是不同学生最喜欢的书,@ManyToOne会更合适吗?
我认为许多学生可能有相同的最喜欢的书,这使得它成为多对一:
public class Student {
@ManyToOne
Book favoriteBook
}
这意味着两个不同的学生可以拥有他们最喜欢的同一本书。约翰和简最喜欢的书是《;《白鲸》;
除非学生可以有多个订单历史记录,否则我会说这是一对一的:
public class StudentOrderHistory{
@OneToOne
Student student;
}
因为订单的历史对每个学生来说都是独一无二的。
但不确定lastBook
。如果这意味着一个学生有这本书,而其他人不能把它作为lastBook
,那么它就是一对一的:
public class StudentOrderHistory{
@OneToOne
Student student;
@OneToOne
Book lastBook;
}
这本书只属于StudentOrderHistory
,因此只属于一个学生。如果你指的是他们订购的最后一本书,而与此同时,其他人订购了同一本书
public class StudentOrderHistory{
@OneToOne
Student student;
@ManyToOne
Book lastBook;
}
似乎两个不同的学生可以订购同一本书,但如果不了解更多,很难说哪个解决方案是正确的。