如何在hibernate中从两个表生成单个对象?
我有两张桌子
Question table ---------------- questionId | question -------------------- 1 | who invented java ? 2 | who invented computer ? Options table -------------- OptionId | option |questionId ------------------------------ 1 | santos | 1 2 | james | 1 3 | jashuwa| 1 4 | jhon | 1 5 | charles| 2 6 | ram | 2 7 | raj | 2 8 | rohit | 2
现在,我有一个像下面这样的VO对象
class QuestionAndOptions {
String questionId;
String question;
Sting option1Id;
String option1;
Sting option2Id;
String option2;
Sting option3Id;
String option3;
Sting option4Id;
String option4;
//getter and setter methods
}
现在,如何使用hibernate创建QuestionAndOptions对象?
现在,如何使用hibernate创建QuestionAndOptions对象列表?
知道我应该怎么做?
答案 0 :(得分:0)
根据提供的表格图,我可以看到Question表和Options表之间的关系是一对多的。因此,对于您的案例,对象将遵循:
@Table(name="QUESTION")
public class Question{
@Id
@Column(...)
private Long questionId;
@Column(...)
private String questionText;
@OneToMany(fetch = FetchType.LAZY, mappedBy = "question")
private List<Option> options
//getters and setters
}
@Table(name="OPTION")
public class Option{
@Id
@Column(...)
private Long optionId;
@Column(...)
private String optionText;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "QUESTION_ID", nullable = false)
private Question question;
//getters and setters
}
答案 1 :(得分:0)
从表结构看,QuestionId是Options表中的外键,Question和options之间存在一对多的关系。用于此的Hibernate类可以如下 -
class Option{
String optionId;
String option;
Question question;
}
class Question{
String questionId;
String question;
Set<Option> options;
}
您提到的QuestionAndOptions结构可能有点难以维护。显然,您可以使用一些代码将检索到的hibernate对象转换为您希望的结构。