Я пытаюсь отобразить 3 объекта: Question, Answer и QuestionDisplayRule.Вопрос имеет много Ответов и много Вопросов-правил воспроизведения, каждый из которых принадлежит одному Вопросу.QuestionDisplayRule имеет один вопрос, один ответ и одно поле со строковым значением.Таблица БД для QuestionDisplayRule выглядит следующим образом:
create table question_display_rule(
question_id int,
answer_id int,
answer_value varchar(128)
);
Естественно, question_id и answer_id - это PK.
Отображение JPA выглядит так:1009 *
@Entity
@Table(name = "question_display_rule")
public class QuestionDisplayRule implements Serializable {
@EmbeddedId
private QuestionDisplayRulePK id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name="question_id", insertable = false, updatable = false)
private Question question;
@ManyToOne
@JoinColumn(name = "answer_id", insertable = false, updatable = false)
private Answer answer;
@Column(name="answer_value")
private String answerValue;
}
Проблема в том, что он прекрасно загружает QuestionDisplayRules, если я добавляю записи вручную в БД, но не сохраняю их.Нет ошибок, нет ничего ..
Тестовый код:
QuestionDisplayRulePK qPK = new QuestionDisplayRulePK();
qPK.setQuestion(q);
qPK.setAnswer(a);
QuestionDisplayRule qr = new QuestionDisplayRule(qPK, "Yes");
qr.setAnswerValue("whateva..");
....
// DAO code looks like: getSession().saveOrUpdate(qr);
Есть идеи?Спасибо!