I am new to Hibernate and Java server side. I have mapped MySQL table in Java using javax.persistence
annotation. I have two tables:
order_header
In this table, I have order_number(primary_key),total_order_value,delivery_charge,order_time
columns.
order_details
In this table, I have
order_number,product_code,price
columns.
In order_header
the order_number is primary key.
For Each order_number there are n
number of products in order_details table.
How can I combine both these tables?
What is the Query to get the value like Final Output
For Example :
Order Headers Table
Order_number total_order_value delivery_charge order_time
----------------------------------------------------------------------
25 2550 50 03:20:50
36 350 50 03:20:50
----------------------------------------------------------------------
Order_headers.java
@Entity
@Table(name = "order_headers")
public class Order_headers {
@Id @GeneratedValue
@Column(name = "order_number")
private int order_number;
@Column(name = "total_order_value")
private double order_value;
@Column(name = "delivery_charge")
private String delivery_charge;
@Column(name = "order_time")
private String order_time;
//here getter and setter methods
}
Order_details
Order_number product_code price
---------------------------------------
25 235 1500
25 240 1000
36 50 40
36 96 60
36 150 200
Order_details.java
@Entity
@Table(name = "order_details")
public class Order_details {
@Column(name = "Order_number")
private int Order_number;
@Column(name = "product_code")
private String product_code;
@Column(name = "price")
private String price;
//here getter and setter methods
}
I don't know how to write the combined query in Hibernate to get the details like final output.
Final Output
Order_number total_order_value product_value delivery_charge order_time
---------------------------------------------------------------------------------------
25 2550 2500 50 03:20:50
36 350 300 50 03:20:50
---------------------------------------------------------------------------------------
Please help me to solve this issue.
you have to add relationship between Order_headers and Order_details one to many in hibernate you can achieve this by following code in your Order_headers.java
@OneToMany(mappedBy = "Order_number", fetch = FetchType.LAZY)
private List<Order_details> orderDetailList;
//add getter and setter methods for orderDetailList.
once you add this code now you can write Criteria like
Criteria criteria = session.createCriteria(Order_headers.class);
criteria.setFetchMode("Order_details",FetchMode.JOIN);
List<Order_headers> list = criteria.list();
or you can Writer HQL like
session.createQuery("from Order_headers cont join cont.Order_details where cont.id=1");
or you can also write SQL Query in case you want to writer SQL Query no need of adding property orderDetailList in Order_headers.java here is SQL
session.createSQLQuery("SELECT * FROM Order_headers order JOIN Order_details details ON order.order_number = details.order_number");
Collected from the Internet
Please contact [email protected] to delete if infringement.
Comments