try {
LOG.debug("Entering readDb at {}",
System.currentTimeMillis());
Session session =
transactionManager.getSessionFactory().getCurrentSession();
Query query = null;
ReturnTrackerEntity rtEntity = null;
List<ReturnTrackerEntity> rtEntityList = null;
query = session.createQuery("SELECT r FROM org.hx.api.returns.model.entity.ReturnTrackerEntity r WHERE r.hxinRefId = :hxinRefId AND r.rtnTyp = :rtnTyp AND r.rtnPrd = :rtnPrd");
if (query != null) {
query.setString("hxinRefId", key.gethxinRefId());
query.setString("rtnTyp", key.getRtnTyp());
query.setString("rtnPrd", key.getRtnPeriod());
LOG.debug("Query Parameters are {} {} {}", key.gethxinRefId(), key.getRtnTyp(), key.getRtnPeriod());
rtEntityList = query.list();
if(rtEntityList != null && !rtEntityList.isEmpty()) {
rtEntity = (ReturnTrackerEntity) query.list().get(0);
}
LOG.debug("Data from readDb at :{}", rtEntity);
}
return rtEntity;
When executing the above method I'm getting following exception;
java.lang.IllegalArgumentException: Parameter hxinRefId does not exist as a named parameter in [SELECT r FROM org.hx.api.returns.model.entity.ReturnTrackerEntity r WHERE r.hxinRefId = :hxinRefId AND r.rtnTyp = :rtnTyp AND r.rtnPrd = :rtnPrd]
I have tried using setParameters still it shows error:
org.hibernate.QueryParameterException: could not locate named parameter [hxinRefId]
This is the enitity class followed by getter setter:
@Entity
@Table(name = "RTN_TRACKER")
@NamedQuery(
name = "ReturnTrackerEntity.getReturnTracker",
query = "SELECT r FROM org.hx.api.returns.model.entity.ReturnTrackerEntity r WHERE r.hxinRefId = :hxinRefId AND r.rtnTyp = :rtnTyp AND r.rtnPrd = :rtnPrd")
public class ReturnTrackerEntity implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "ID")
private int id;
@Column(name = "HXIN_REF_ID")
private String hxinRefId;
@Column(name = "RTN_TYP")
private String rtnTyp;
@Column(name = "RTN_PRD")
private String rtnPrd;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "LATEST_SAVE_END")
private Date lastSaveEndTmpStmp;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "LATEST_START")
private Date lastStartTmpStmp;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "INSERT_TMSTMP")
private Date insertTmpStmp;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "UPDATE_TMSTMP")
private Date updateTmpStmp;
@Column(name = "STATE_CD")
private String stateCd;
Also I have tried passing only the Entity class name without whole location still getting error. please help with this stuck for so long in this.