我正在從事測驗管理工作。所有的映射都是通過Hibernate的註釋來完成的。問題是,而所有選項的實體被嵌入的對象,所以我映射選項,如下所示:如何在使用@collectionId映射集合時獲取由Hibernate生成的密鑰?
QuestionMasterDTO的映射TabkidsMCQOptionMasterDTO
:
@ElementCollection(fetch=FetchType.EAGER,targetClass=TabkidsMCQOptionMasterDTO.class)
@Fetch(FetchMode.SUBSELECT)
@Cascade(org.hibernate.annotations.CascadeType.ALL)
@CollectionTable(name="TABKIDS_MCQ_OPTION_MASTER",joinColumns={@JoinColumn(name="TMOM_QUESTION_ID")})
@GenericGenerator(name="hilo-gen",strategy="hilo")
@CollectionId(columns={@Column(name="TMOM_ID")},generator="hilo-gen", [email protected](type="long"))
public Collection<IOptionMaster> getOptions() {
return options;
}
其中TabkidsMCQOptionMasterDTO是:
@Embeddable
public class TabkidsMCQOptionMasterDTO implements IOptionMaster {
private String optionText;
private boolean correct;
@Column(name = "TMOM_OPTION_TEXT")
public String getOptionText() {
return optionText;
}
@Column(name = "TMOM_IS_CORRECT")
public boolean isCorrect() {
return correct;
}
//setters omitted
}
現在,在上述映射即可請參閱我正在使用發電機,即hilo-gen
併爲收集中可用的每個選項分配一個唯一標識,並且該列名稱爲'TMOM_ID
'。
這條線:
@GenericGenerator(name="hilo-gen",strategy="hilo")
@CollectionId(columns={@Column(name="TMOM_ID")},generator="hilo-gen", [email protected](type="long"))
現在,當我使用Hibernate的標準,我正在與問題有關的所有選項,但沒有得到唯一的選擇ID即TMOM_ID
獲取從數據庫的問題。如何獲得這個ID?
如果你想要任何額外的信息PLZ評論。 – Rajeev