I am pretty new to hibernate. I have a two tables having one to many relationship. Two tables are:
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
This is a parent class and it have one to many relationship with Image table
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;
Now I want to select a imagenames
from Image
class using its parent class's id (ie: pashminaId)
eg:
SELECT IMAGE_NAME FROM TBL_IMAGE WHERE PASHMINA_ID = 'some_digit';
How can i pass pashminaId in image class as there is no pashminaId
it only have an Object creation of Parent class Pashmina
.
So, How can i achieve this in hibernate?
Thanks! Hoping for positive response.
As Hibernate treats objects instead of SQL tables, you can simply access the pashmina
object from your image
object, and in your query you will be treating java objects/POJOs, so you can acccess it via Image.pashmina.pashminaId
.
So you can write the following query:
String hql = "select I.imageName FROM Image I WHERE I.pashmina.pashminaId = 10";
Query query = session.createQuery(hql);
List results = query.list();