-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 2 posts ] 
Author Message
 Post subject: Hibernate mulit level association issue
PostPosted: Fri Feb 27, 2015 7:53 am 
Newbie

Joined: Fri Feb 27, 2015 6:45 am
Posts: 3
Hibernate generatig multiple queries when try to fetch record for multi level mapping.
Inventroy has Line Item and status. And Each Line Item has Groups and Orders.

I need to get all the class populated so I have written hql query

SELECT DISTINCT chgbk, 1 FROM Inventory invnt RIGHT OUTER JOIN invnt.item as litem JOIN litem.gp as group WHERE litem.lineItmName = :_LINE_ITEM_NAME.

But Hibernate created 3 queries behind and this cause some issue in production.

1. select distinct invnt0.INVENT_ID as col_0_0_, 1 as col_1_0_ from Inventory invnt0
2.select lineItm0.LINE_ITM_ID,lineItm0.LINE_ITEM_NAME,order0.PRC_ORDER_ID,order0.ORD_NAME,grop0.LINE_ITM_GRP_ID,grop0.GRP_NAME from LineItem lineItm0 left outer join Group grop0 on lineItm0.D_GRP_ID=grop0.LINE_ITM_GRP_ID left outer join
Order order0 on lineItm0.LINE_ITEM_PRD_NM=order0.PRC_ORDER_ID where lineItm0.LINE_ITM_ID = ?

3.select status0_.STATUS_ID as STATUS1_2_0_, status0_.GRP_NAME as MCOM2_2_0_ from STATUS status0_ where status0_.STATUS_ID=?


Hibernate automatically generates the 2 adn 3rd queries.

But I need to add another condition in the where clause of the 2nd query. But the second query is automatically generate I can not alter it.
1.Is any possible way to add another condition in the where clause of the 2nd query.
2.If not possible is there a way to modify the main query so that only one query executes which load all the objects.

########################################INVENTROY Class############################
@Entity(name = "Inventory")
@Table(name = "Inventory")
public class Inventory {

private String id"";
private LineItem item;
private String lineItemId;
private Status statusKey;
private String statCode;

@Id
@Column(name = "INVENT_ID")
public String getId() {}

@OneToOne
@JoinColumn(name = "LINE_ITEM_ID", nullable = true)
public LineItem getItem() {}

@Column(name = "LINE_ITEM_ID", insertable = false, updatable = false, nullable = true)
public String lineItemId() {}

@ManyToOne
@JoinColumn(name = "INVNT_STAT_CODE", insertable = false, updatable = false)
public Status getStatusKey() {}

@Column(name = "INVNT_STAT_CODE")
public String getStatCode() {}

}
################################# LINE ITEM Class###################################
@Entity(name = "LineItem")
@Table(name = "LineItem")
public class LineItem {

private String id;
private String lineItmName;
private Order ord;
private Group gp;
private String lineItmPrdId;
private String grpId;

@Id
@Column(name = "LINE_ITM_ID", nullable = false)
public String getId() {}

@Column(name = "LINE_ITEM_NAME")
public String getLineItmName() {}

@OneToOne
@JoinColumns({
@JoinColumn(name="LINE_ITEM_PRD_NM", referencedColumnName = "PRC_ORDER_ID", insertable = false, updatable = false )
})
public Order getOrd() {}

@Column(name = "LINE_ITEM_PRD_NM")
public String getLineItmPrdId() {}

@ManyToOne
@JoinColumn(name = "D_GRP_ID")
public Group getGp() {}

@Column(name = "D_GRP_ID", insertable = false, updatable = false)
public String getGrpId() {}

}

######################################ORDER CLASS ###################################################



@Entity(name = "Order")
@Table(name = "Order")
public class Order {

private String ordId;
private String ordName;

@Id
@Column(name = "PRC_ORDER_ID")
public String getOrdId() {}

@Column(name = "ORD_NAME")
public String getOrdName() {}

}
############################################### GROUP Class#######################
@Entity(name = "Group")
@Table(name = "Group")
public class Group {

pubilc String lineItmPrdNum;
public String grpName;

@Id
@Column(name = "LINE_ITM_GRP_ID")
public String getSeqNo() {}

@Column(name = "GRP_NAME")
public String getGrpName () {}
}


############################################### Status Class#######################

@Entity(name = "STATUS")
@Table(name = "STATUS")
public class Status {

pubilc String statusCd;
public String statName;

@Id
@Column(name = "STATUS_ID")
public String getStatusCd() {}

@Column(name = "GRP_NAME")
public String getStatName () {}
}


Top
 Profile  
 
 Post subject: Re: Hibernate mulit level association issue
PostPosted: Mon Mar 02, 2015 2:22 am 
Newbie

Joined: Fri Feb 27, 2015 6:45 am
Posts: 3
Hi Can any body update on this defect.


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 2 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.