Questionnaire と QuestionnaireTime という 2 つのエンティティがあります。アンケートの id は QuestionnaireTime の外部キーです。したがって、私の QuestionnaireTime エンティティの関係は次のようになります。
@JoinColumn(name = "questionnaireid", referencedColumnName = "id")
@ManyToOne(cascade = CascadeType.PERSIST)
private Questionnaire questionnaireid;
私がやろうとしているのは、1 つのアンケートに複数の QuestionnaireTime レコードを追加することです。リレーションシップで CascadeType.PERSIST 部分を削除すると、永続化が完了しません。また、カスケードを使用すると、メイン テーブルのアンケートにいくつかの新しいレコードが表示されますが、それは私が望んでいるものではありません。
たとえば、特定のアンケートに 3 つの QuestionnaireTime を追加する場合、3 つのレコードが QuestionnaireTime テーブルに挿入されますが、3+1 レコードもアンケートに追加されます。
さらに説明が必要な場合。これは私の管理対象 Bean であり、1 つのアンケートに複数の QuestionnaireTime レコードを追加しようとしている部分です: NB - 現在は私のアンケート オブジェクトです。
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();
}