簡體   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