Java 如何在hibernate中从两个表生成单个对象?
如何在hibernate中从两个表生成单个对象 我有两张桌子Java 如何在hibernate中从两个表生成单个对象?,java,hibernate,Java,Hibernate,如何在hibernate中从两个表生成单个对象 我有两张桌子 问题表 选项表 } 现在,如何使用hibernate创建QuestionAndOptions对象 现在,如何使用hibernate创建QuestionAndOptions对象列表 你知道我该怎么做吗?根据提供的表格图表,我可以看到问题表格和选项表格之间的关系是一对多的。因此,对于您的案例,对象将如下所示: @Table(name=“QUESTION”) 公开课问题{ @身份证 @列(…) 私人长问卷; @列(…) 私有字符串文本; @
你知道我该怎么做吗?根据提供的表格图表,我可以看到问题表格和选项表格之间的关系是一对多的。因此,对于您的案例,对象将如下所示:
@Table(name=“QUESTION”)
公开课问题{
@身份证
@列(…)
私人长问卷;
@列(…)
私有字符串文本;
@OneToMany(fetch=FetchType.LAZY,mappedBy=“question”)
私有列表选项
//接球手和接球手
}
@表(name=“OPTION”)
公共类选项{
@身份证
@列(…)
私人长期权ID;
@列(…)
私有字符串optionText;
@manytone(fetch=FetchType.LAZY)
@JoinColumn(name=“QUESTION\u ID”,null=false)
私人问题;
//接球手和接球手
}
从您的表结构来看,QuestionId似乎是选项表中的外键,并且问题和选项之间存在一对多关系。这方面的Hibernate类可以如下所示-
class Option{
String optionId;
String option;
Question question;
}
class Question{
String questionId;
String question;
Set<Option> options;
}
类选项{
字符串选项ID;
字符串选项;
问题;;
}
课堂提问{
字符串问号;
字符串问题;
设置选项;
}
您提到的问题和选项结构可能有点难以维护。显然,您可以使用一些代码将检索到的hibernate对象转换为所需的结构。您使用哪个版本的hibernate?@AlexMalinovskiy我正在使用hibernate 3.x谢谢!我理解你的想法。我知道如何在hibernate中通过一对多映射持久化这些对象。但我不知道如何使用hibernate从数据库中检索这些对象。我想在JSPso中将这些问题和选项显示为一个表,以便按ID检索特定的问题。您可以使用以下方法从会话工厂-
sessionFactory.getCurrentSession().load(question.class,)
。按照您的建议加载问题类时,我需要option对象和question对象。这可能吗?所以在我的方法中,如果您加载问题对象,那么与此问题相关的选项将被延迟加载。这意味着只有相关选项的ID可用,但当您开始遍历选项列表时,它们将被完全实例化。谢谢!我明白了。
String questionId;
String question;
Sting option1Id;
String option1;
Sting option2Id;
String option2;
Sting option3Id;
String option3;
Sting option4Id;
String option4;
//getter and setter methods
class Option{
String optionId;
String option;
Question question;
}
class Question{
String questionId;
String question;
Set<Option> options;
}