Я читаю похожие вопросы, но все еще имею проблемы.
Информация о конфигурации: Hibernate 3.5.1
Вопрос родительского класса:
@Entity
public class Question implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="questionId")
private long id;
private String title;
private String description;
@OneToMany(cascade=CascadeType.ALL, mappedBy="question")
private Set<Vote> votes;
public void addVote(Vote vote){
if(votes==null)
votes = new HashSet<Vote>();
getVotes().add(vote);
}
}
Дочерний класс Голосовать:
@Entity
public class Vote implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="voteId")
private long id;
private transient InetAddress address;
@ManyToOne
@JoinColumn(name="questionId")
private Question question;
@Enumerated(EnumType.STRING)
private Mode mode;
// ...
}
И, наконец, очень простой тест:
@Test
public void testSaveOrUpdate() {
Vote vote1 = new Vote();
vote1.setAddress(InetAddress.getLocalHost());
vote1.setMode(Mode.HIM);
question = new Question();
question.setTitle("test?");
question.setDescription("test");
question.addVote(vote1);
question2 = questionDao.saveOrUpdate(question);
assertNotNull(question2);
Set<Vote> votes = question.getVotes();
assertEquals(votes.size(), 1);
for(Vote vote:votes)
assertNotNull(vote.getQuestion());
}
тест не пройден, потому что voice.getQuestion () возвращает ноль.Когда я проверяю в БД, в столбце questionId есть ноль.Мой вопрос заключается в том, что я должен сделать, чтобы иметь ссылку на вопрос при голосовании при голосах ?что-то не так с отображением, но я понятия не имею, что.