问题描述
有人可以确认我关注了吗?
我有以下实体:
public static void createSheet() throws IOException {
String title = LocalDateTime.Now().toString() ;
Spreadsheet spreadsheet = new Spreadsheet()
.setProperties(new SpreadsheetProperties()
.setTitle(title));
spreadsheet = service.spreadsheets().create(spreadsheet)
.setFields("spreadsheetId")
.execute();
spreadsheetId = spreadsheet.getSpreadsheetId();
System.out.println("Spreadsheet ID: " + spreadsheet.getSpreadsheetId());
}
如果 favoriteBook / lastBook 仅链接到每个 Student 或 StudentOrderHistory ,那么它们仍然是 @OnetoOne 关系,还是会是 @ManyToOne 关系,因为同一个 BookEntity 链接在多个实体中(这里是 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;
}
似乎两个不同的学生可以订购同一本书,但如果不了解更多信息,就很难说哪个解决方案是正确的。