休眠选择"从子表中查询"



我对冬眠很陌生。我有两个表,有一对多的关系。两个表是:

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

这是一个父类,它与图像表有一对多关系

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;

现在我想使用Image类的父类 id(即:pashminaId(从类中选择一个imagenames

例如:

从TBL_IMAGE中选择IMAGE_NAME,其中PASHMINA_ID = 'some_digit';

如何在图像类中传递 pashminaId,因为没有pashminaId它只有一个父类Pashmina的对象创建。

那么,如何在休眠中实现这一点?

如果你不理解我,请告诉我。

谢谢!希望得到积极的回应。

由于 Hibernate 处理对象而不是 SQL 表,您只需从image对象访问pashmina对象,并且在查询中您将处理 java 对象/POJO,因此您可以通过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(); 

最新更新