Solved

Hibernate query using joins and like operator

Posted on 2013-12-19
1
372 Views
Last Modified: 2013-12-19
I have two model classes:  

Class 1 looks like this:

@Entity
@Table(name = "Cdm_location_charge_class", catalog = "emscribedx")
public class Cdm_location_charge_class {
	private static Logger  LOG = Logger.getLogger(Cdm_location_charge_class.class);
	private int indx;
	private String location;
	private String charge_Class;
	private List <Cdm_trans> cdm_Trans;
	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	@Column(name = "indx")
	public int getIndx() {
		return indx;
	}
	public void setIndx(int indx) {
		this.indx = indx;
	}
	
	@Column(name = "location")
	public String getLocation() {
		return location;
	}
	public void setLocation(String location) {
		this.location = location;
	}
	@Column(name = "charge_Class")
	public String getCharge_Class() {
		return charge_Class;
	}
	public void setCharge_Class(String charge_Class) {
		this.charge_Class = charge_Class;
	}
	@OneToMany (mappedBy = "cdm_location_charge_class", targetEntity = Cdm_trans.class, cascade = CascadeType.ALL, fetch = FetchType.EAGER)
	public List<Cdm_trans> getCdm_Trans() {
		return cdm_Trans;
	}
	public void setCdm_Trans(List<Cdm_trans> cdm_Trans) {
		this.cdm_Trans = cdm_Trans;
	}
}

Open in new window

--------------------------------------------------------------
And class 2 looks like this:



@Entity
@Table(name = "CDM_Trans", catalog = "emscribedx")
public class Cdm_trans {
	private static Logger LOG = Logger.getLogger(Cdm_trans.class);

	private int indx;
	private String charge_Class;
	private String charge_Code;
	private String charge_Description;
	private String charge_Eligibility;
	private String exp_Date;
	private BigDecimal rate_Charge;
	private String cpt_Code;
	private int rev_Code;
	private String charge_Type;
	private Cdm_location_charge_class locationchargeclass;

	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	@Column(name = "indx")
	public int getIndx() {
		return indx;
	}

	public void setIndx(int indx) {
		this.indx = indx;
	}

	@Column(name = "charge_Class")
	public String getCharge_Class() {
		return charge_Class;
	}

	public void setCharge_Class(String charge_Class) {
		this.charge_Class = charge_Class;
	}

	@Column(name = "charge_Code")
	public String getCharge_Code() {
		return charge_Code;
	}

	public void setCharge_Code(String charge_Code) {
		this.charge_Code = charge_Code;
	}

	@Column(name = "charge_Description")
	public String getCharge_Description() {
		return charge_Description;
	}

	public void setCharge_Description(String charge_Description) {
		this.charge_Description = charge_Description;
	}

	@Column(name = "charge_Eligibility")
	public String getCharge_Eligibility() {
		return charge_Eligibility;
	}

	public void setCharge_Eligibility(String charge_Eligibility) {
		this.charge_Eligibility = charge_Eligibility;
	}

	@Column(name = "exp_Date")
	public String getExp_Date() {
		return exp_Date;
	}

	public void setExp_Date(String exp_Date) {
		this.exp_Date = exp_Date;
	}

	@Column(name = "rate_Charge")
	public BigDecimal getRate_Charge() {
		return rate_Charge;
	}

	public void setRate_Charge(BigDecimal rate_Charge) {
		this.rate_Charge = rate_Charge;
	}

	@Column(name = "cpt_Code")
	public String getCpt_Code() {
		return cpt_Code;
	}

	public void setCpt_Code(String cpt_Code) {
		this.cpt_Code = cpt_Code;
	}

	@Column(name = "rev_Code")
	public int getRev_Code() {
		return rev_Code;
	}

	public void setRev_Code(int rev_Code) {
		this.rev_Code = rev_Code;
	}

	@Column(name = "charge_Type")
	public String getCharge_Type() {
		return charge_Type;
	}

	public void setCharge_Type(String charge_Type) {
		this.charge_Type = charge_Type;
	}

	@ManyToOne
	@JoinColumn(name = "charge_Class", insertable = false, updatable = false)
	public Cdm_location_charge_class getLocationchargeclass() {
		return locationchargeclass;
	}

	public void setLocationchargeclass(
			Cdm_location_charge_class locationchargeclass) {
		this.locationchargeclass = locationchargeclass;
	}
}

Open in new window


-------------------------------------------------------------------------------------------------------------
The two classes correspond to two underlying tables:

Cdm_trans and Cdm_location_charge_class.    

I want to create a Hibernate Service that will give me the same result as the following sql query:

select cdm_trans.* from Cdm_trans, Cdm_location_charge_class where
cdm_location_charge_class.charge_Class = cdm_trans.charge_Class and
cdm_location_charge_class.location = <Some location passed to the method> and
Cdm_trans.charge_Description like '%<Some search term passed into the method>%;

My preference would be to do this using the Hibernate criteria API.   But I will go with HQL if that is the only way.     Can someone show me how to do this?

Thank you,
0
Comment
Question by:efamilant
1 Comment
 
LVL 59

Accepted Solution

by:
Kevin Cross earned 500 total points
ID: 39729185
0

Featured Post

PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

Join & Write a Comment

Suggested Solutions

Slowly Changing Dimension Transformation component in data task flow is very useful for us to manage and control how data changes in SSIS.
Ever wondered why sometimes your SQL Server is slow or unresponsive with connections spiking up but by the time you go in, all is well? The following article will show you how to install and configure a SQL job that will send you email alerts includ…
Via a live example, show how to shrink a transaction log file down to a reasonable size.
Viewers will learn how to use the UPDATE and DELETE statements to change or remove existing data from their tables. Make a table: Update a specific column given a specific row using the UPDATE statement: Remove a set of values using the DELETE s…

708 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

15 Experts available now in Live!

Get 1:1 Help Now