java hibernate从子表中选择查询
我刚开始冬眠。我有两个表,它们具有一对多关系。有两个表格:
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;
现在我想使用其父类的id(即:pashminaId)从Image
类中选择一个imagenames
例如:
SELECT IMAGE_NAME FROM TBL_IMAGE WHERE PASHMINA_ID = 'some_digit';
由于没有pashminaId
它只有父类Pashmina
的对象创建,如何在图像类中传递pashminaId
那么,如何在hibernate中实现这一点呢强>
如果你不明白我的意思,请告诉我
谢谢!希望得到积极的回应
# 1 楼答案
由于Hibernate处理对象而不是SQL表,所以您可以从
image
对象简单地访问pashmina
对象,并且在查询中处理java对象/POJO,因此您可以通过Image.pashmina.pashminaId
访问它因此,您可以编写以下查询: