繁体   English   中英

如何从休眠中的两个表生成单个对象?

[英]How to generate a single object from two tables in hibernate?

如何从休眠的两个表中生成一个对象?

我有两张桌子

  1. 问题表
  2. 选项表
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对象,如下所示

类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

}

现在,如何使用休眠方式创建QuestionAndOptions对象?

现在,我如何使用休眠方式创建QuestionAndOptions对象的列表?

知道我应该怎么做吗?

基于提供的表图,我可以看到问题表和选项表之间的关系是一对多的。 因此,对于您的情况,对象将如下:

@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
}

从您的表结构看来,QuestionId是Options表中的外键,并且Question和options之间存在一对多的关系。 为此的Hibernate类可以如下-

class Option{
    String optionId;
    String option;
    Question question;
} 

class Question{
    String questionId;
    String question;
    Set<Option> options;
}

您提到的QuestionAndOptions结构可能很难维护。 显然,您可以使用一些代码将检索到的休眠对象转换为所需的结构。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM