我有两个实体:问卷调查和问卷调查时间。Questionnaire's id 是 QuestionnaireTime 中的外键。所以我的 QuestionnaireTime 实体中的关系如下所示:
@JoinColumn(name = "questionnaireid", referencedColumnName = "id")
@ManyToOne(cascade = CascadeType.PERSIST)
private Questionnaire questionnaireid;
所以我想要做的是为一个问卷添加多个 QuestionnaireTime 记录。如果我删除了我的关系中的 CascadeType.PERSIST 部分,我的坚持就没有完成。当我使用 cascade 时,我在主表 Questionnaire 中获得了几条新记录,这不是我想要的。
例如,当我想为某个问卷添加三个 QuestionnaireTime 时,这三个记录插入到我的 QuestionnaireTime 表中,但问卷中也添加了 3+1 条记录。
如果您需要更多解释。这是我的托管 bean,我试图在一个问卷中添加多个 QuestionnaireTime 记录的部分:NB - current is my Questionnaire object
else if (current.getType().equals("frequent")) {
int iteration = 1;
currentQuestionnaireTime = new QuestionnaireTime();
if (!selectDateList.isEmpty()) {
for (String insertedDate : selectDateList) {
currentQuestionnaireTime.setId(0);
currentQuestionnaireTime.setQuestionnaireid(current);
getEjbQuestionnaireTimeFacade().create(currentQuestionnaireTime);
iteration++;
}
}
}
try {
getFacade().create(current); // my Questionnaire facade
} catch (EJBException ejbe) {
ejbe.getCause();
}