慕無(wú)忌1623718
2021-04-02 09:40:45
我很冬眠。我有兩個(gè)表具有一對(duì)多的關(guān)系。兩張表是:public class Pashmina implements Serializable { @Id @GeneratedValue(strategy = GenerationType.AUTO, generator = "sq_pashmina_id") @SequenceGenerator(name = "sq_pashmina_id", sequenceName = "sq_pashmina_id") @Column(name = "PASHMINA_ID") private int pashminaId; @Column(name = "PASHMINA_NAME") private String pashminaName; @Column(name = "PRICE") private double price; @Column(name = "ADDED_AT", insertable = false) @Temporal(TemporalType.TIMESTAMP) private Date addedAt; @Column(name = "CATEGORY") private String category; @Column(name = "ENABLED", insertable = false) private Character enabled; @OneToMany(mappedBy = "colourId", fetch = FetchType.EAGER) private Set<PashminaColour> pashminaColor = new HashSet<PashminaColour>(); @OneToMany(mappedBy = "imageId", fetch = FetchType.EAGER) private Set<Image> images = new HashSet<Image>(); @OneToMany(mappedBy = "descriptionId", fetch = FetchType.EAGER) private Set<Description> descriptions = new HashSet<Description>(); //getter and setter method這是一個(gè)父類,它與Image表具有一對(duì)多關(guān)系public class Image implements Serializable { @Id @Column(name = "IMAGE_ID") private int imageId; @Column(name = "IMAGE_NAME") private String imageName; @JoinColumn(name = "PASHMINA_ID", referencedColumnName = "PASHMINA_ID") @ManyToOne private Pashmina pashmina;現(xiàn)在,我要使用其父類的ID(即pashminaId)imagenames從Image類中選擇一個(gè)例如:從TBL_IMAGE中選擇IMAGE_NAME,其中PASHMINA_ID ='some_digit';我如何在圖像類中傳遞pashminaId,因?yàn)闆](méi)有pashminaId它只有Parent類的Object創(chuàng)建Pashmina。那么,我該如何在休眠狀態(tài)下實(shí)現(xiàn)呢?
1 回答

哈士奇WWW
TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超6個(gè)贊
當(dāng)Hibernate對(duì)待對(duì)象而不是SQL表時(shí),您可以簡(jiǎn)單地pashmina從您的image對(duì)象訪問(wèn)該對(duì)象,并且在查詢中您將對(duì)待Java對(duì)象/ POJO,因此可以通過(guò)對(duì)其進(jìn)行訪問(wèn)Image.pashmina.pashminaId。
因此,您可以編寫以下查詢:
String hql = "select I.imageName FROM Image I WHERE I.pashmina.pashminaId = 10";
Query query = session.createQuery(hql);
List results = query.list();
添加回答
舉報(bào)
0/150
提交
取消