我正在使用 Eclipselink 并且在使用辅助表时遇到问题。我有两个表如下。
具有列 student_id(Primary Key)、student_name 等的学生。
使用列 student_id(与 Student 表的 FK 关系)、 course_name(非空约束)等进行注册。
要求是学生可能有也可能没有注册。如果学生已注册,则数据也应保存在注册表中。否则只有学生表应该被持久化。
我的代码片段如下。
Student.java
------------
@Entity
@Table(name = "STUDENT")
@SecondaryTable(name = "REGISTRATION")
@Id
@Column(name = "STUDENT_ID")
private long studentId;
@Basic(optional=true)
@Column(name = "COURSE_NAME", table = "REGISTRATION")
private String courseName;
我尝试了以下场景。1. 注册学生 - 工作正常。数据被添加到学生和注册表 2. 没有注册的学生 - 出现诸如“COURSE_NAME”之类的错误不能为空。
有没有办法防止持久化到辅助表中?
任何帮助深表感谢。
谢谢!!!