I have a find all method where I am using criteria to fetch records from database.
Class:
@Entity
@Table(name = "T_REF_MODEL")
public class RefModelORM extends AuditModelORM implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1264852500063416982L;
@Column(name = "REF_MODEL_ID")
@Id
private String refModelId;
@Column(name="NAME")
private String name;
@Column(name="DESCRIPTION")
private String description;
@Column(name="TENANT_ID")
private String tenantId;
@Column(name="IS_TRAINED")
private String isTrained;
@Column(name = "REF_INPUT_EVENT_TYPE_ID")
private String inputEventTypeId;
@Column(name = "REF_MODEL_TYPE_ID", insertable=false, updatable=false)
private String modelTypeId;
@JoinColumn(nullable = false, name = "REF_MODEL_TYPE_ID", referencedColumnName = "REF_MODEL_TYPE_ID" )
@ManyToOne(fetch=FetchType.LAZY)
private ModelTypeORM modelType;
@OneToMany(mappedBy="refmodel", fetch=FetchType.EAGER)
private List<RefModelParameterORM> parameters;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public ModelTypeORM getModelType() {
return modelType;
}
public void setModelType(ModelTypeORM modelType) {
this.modelType = modelType;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getTenantId() {
return tenantId;
}
public void setTenantId(String tenantId) {
this.tenantId = tenantId;
}
public String getIsTrained() {
return isTrained;
}
public void setIsTrained(String isTrained) {
this.isTrained = isTrained;
}
public String getInputEventTypeId() {
return inputEventTypeId;
}
public void setInputEventTypeId(String inputEventTypeId) {
this.inputEventTypeId = inputEventTypeId;
}
public String getRefModelId() {
return refModelId;
}
public void setRefModelId(String refModelId) {
this.refModelId = refModelId;
}
public List<RefModelParameterORM> getParameters() {
return parameters;
}
public void setParameters(List<RefModelParameterORM> parameters) {
this.parameters = parameters;
}
public String getModelTypeId() {
return modelTypeId;
}
public void setModelTypeId(String modelTypeId) {
this.modelTypeId = modelTypeId;
}
@Override
public String toString() {
return "RefModelORM [name=" + name + ", description=" + description + ", tenantId=" + tenantId + ", isTrained="
+ isTrained + ", inputEventTypeId=" + inputEventTypeId + ", modelTypeId=" + modelTypeId
+ ", refModelId=" + refModelId + "]";
}
}
Method:
public List<RefModelORM> findAllRefModels(RefModelORM filter) throws SQLException {
CriteriaBuilder builder = entityManager.getCriteriaBuilder();
CriteriaQuery<RefModelORM> criteria = builder.createQuery(RefModelORM.class);
Root<RefModelORM> refModelORM = criteria.from(RefModelORM.class);
criteria.select(refModelORM);
List<Predicate> predicates= new ArrayList<Predicate>();
if (StringUtils.hasLength(filter.getStatus())) {
if(CommonUtils.isValidStatus(filter.getStatus(), true)){
predicates.add(builder.equal(refModelORM.get("status"), filter.getStatus()));
}else{
throw new ValidationException("Invalid status : " + filter.getStatus());
}
} else {
predicates.add(builder.notEqual(refModelORM.get("status"), "D"));
}
if (StringUtils.hasLength(filter.getModelTypeId())){
predicates.add(builder.equal(refModelORM.get("modelTypeId"), filter.getModelTypeId()));
}
if (StringUtils.hasLength(filter.getName())) {
predicates.add(builder.equal(refModelORM.get("name"), filter.getName()));
}
if (StringUtils.hasLength(filter.getCreateUser())) {
predicates.add(builder.equal(refModelORM.get("createUser"), filter.getCreateUser()));
}
if (StringUtils.hasLength(filter.getUpdateUser())) {
predicates.add(builder.equal(refModelORM.get("updateUser"), filter.getUpdateUser()));
}
criteria.where(builder.and(predicates.toArray(new Predicate[]{})));
List<RefModelORM> list = entityManager.createQuery(criteria).getResultList();
return list;
}
Query Output:
Hibernate: select refmodelor0_.REF_MODEL_ID as REF_MODEL_ID1_0_, refmodelor0_.CREATE_DATE as CREATE_DATE2_0_, refmodelor0_.CREATE_USER as CREATE_USER3_0_, refmodelor0_.STATUS as STATUS4_0_, refmodelor0_.UPDATE_DATE as UPDATE_DATE5_0_, refmodelor0_.UPDATE_USER as UPDATE_USER6_0_, refmodelor0_.DESCRIPTION as DESCRIPTION7_0_, refmodelor0_.REF_INPUT_EVENT_TYPE_ID as REF_INPUT_EVENT_TY8_0_, refmodelor0_.IS_TRAINED as IS_TRAINED9_0_, refmodelor0_.REF_MODEL_TYPE_ID as REF_MODEL_TYPE_ID10_0_, refmodelor0_.NAME as NAME11_0_, refmodelor0_.TENANT_ID as TENANT_ID12_0_ from T_REF_MODEL refmodelor0_ where refmodelor0_.STATUS<>?
Hibernate: select parameters0_.REF_MODEL_ID as REF_MODEL_ID2_1_0_, parameters0_.REF_MODEL_TYPE_PARAMETER_ID as REF_MODEL_TYPE_PAR1_1_0_, parameters0_.REF_MODEL_PARAMETER_ID as REF_MODEL_PARAMETE3_1_0_, parameters0_.REF_MODEL_TYPE_PARAMETER_ID as REF_MODEL_TYPE_PAR1_1_1_, parameters0_.REF_MODEL_ID as REF_MODEL_ID2_1_1_, parameters0_.REF_MODEL_PARAMETER_ID as REF_MODEL_PARAMETE3_1_1_, parameters0_.CREATE_DATE as CREATE_DATE4_1_1_, parameters0_.CREATE_USER as CREATE_USER5_1_1_, parameters0_.STATUS as STATUS6_1_1_, parameters0_.UPDATE_DATE as UPDATE_DATE7_1_1_, parameters0_.UPDATE_USER as UPDATE_USER8_1_1_, parameters0_.DESCRIPTION as DESCRIPTION9_1_1_, parameters0_.NAME as NAME10_1_1_, parameters0_.VALUE as VALUE11_1_1_ from T_REF_MODEL_PARAMETER parameters0_ where parameters0_.REF_MODEL_ID=?
Hibernate: select parameters0_.REF_MODEL_ID as REF_MODEL_ID2_1_0_, parameters0_.REF_MODEL_TYPE_PARAMETER_ID as REF_MODEL_TYPE_PAR1_1_0_, parameters0_.REF_MODEL_PARAMETER_ID as REF_MODEL_PARAMETE3_1_0_, parameters0_.REF_MODEL_TYPE_PARAMETER_ID as REF_MODEL_TYPE_PAR1_1_1_, parameters0_.REF_MODEL_ID as REF_MODEL_ID2_1_1_, parameters0_.REF_MODEL_PARAMETER_ID as REF_MODEL_PARAMETE3_1_1_, parameters0_.CREATE_DATE as CREATE_DATE4_1_1_, parameters0_.CREATE_USER as CREATE_USER5_1_1_, parameters0_.STATUS as STATUS6_1_1_, parameters0_.UPDATE_DATE as UPDATE_DATE7_1_1_, parameters0_.UPDATE_USER as UPDATE_USER8_1_1_, parameters0_.DESCRIPTION as DESCRIPTION9_1_1_, parameters0_.NAME as NAME10_1_1_, parameters0_.VALUE as VALUE11_1_1_ from T_REF_MODEL_PARAMETER parameters0_ where parameters0_.REF_MODEL_ID=?
Hibernate: select parameters0_.REF_MODEL_ID as REF_MODEL_ID2_1_0_, parameters0_.REF_MODEL_TYPE_PARAMETER_ID as REF_MODEL_TYPE_PAR1_1_0_, parameters0_.REF_MODEL_PARAMETER_ID as REF_MODEL_PARAMETE3_1_0_, parameters0_.REF_MODEL_TYPE_PARAMETER_ID as REF_MODEL_TYPE_PAR1_1_1_, parameters0_.REF_MODEL_ID as REF_MODEL_ID2_1_1_, parameters0_.REF_MODEL_PARAMETER_ID as REF_MODEL_PARAMETE3_1_1_, parameters0_.CREATE_DATE as CREATE_DATE4_1_1_, parameters0_.CREATE_USER as CREATE_USER5_1_1_, parameters0_.STATUS as STATUS6_1_1_, parameters0_.UPDATE_DATE as UPDATE_DATE7_1_1_, parameters0_.UPDATE_USER as UPDATE_USER8_1_1_, parameters0_.DESCRIPTION as DESCRIPTION9_1_1_, parameters0_.NAME as NAME10_1_1_, parameters0_.VALUE as VALUE11_1_1_ from T_REF_MODEL_PARAMETER parameters0_ where parameters0_.REF_MODEL_ID=?
Hibernate: select parameters0_.REF_MODEL_ID as REF_MODEL_ID2_1_0_, parameters0_.REF_MODEL_TYPE_PARAMETER_ID as REF_MODEL_TYPE_PAR1_1_0_, parameters0_.REF_MODEL_PARAMETER_ID as REF_MODEL_PARAMETE3_1_0_, parameters0_.REF_MODEL_TYPE_PARAMETER_ID as REF_MODEL_TYPE_PAR1_1_1_, parameters0_.REF_MODEL_ID as REF_MODEL_ID2_1_1_, parameters0_.REF_MODEL_PARAMETER_ID as REF_MODEL_PARAMETE3_1_1_, parameters0_.CREATE_DATE as CREATE_DATE4_1_1_, parameters0_.CREATE_USER as CREATE_USER5_1_1_, parameters0_.STATUS as STATUS6_1_1_, parameters0_.UPDATE_DATE as UPDATE_DATE7_1_1_, parameters0_.UPDATE_USER as UPDATE_USER8_1_1_, parameters0_.DESCRIPTION as DESCRIPTION9_1_1_, parameters0_.NAME as NAME10_1_1_, parameters0_.VALUE as VALUE11_1_1_ from T_REF_MODEL_PARAMETER parameters0_ where parameters0_.REF_MODEL_ID=?
Hibernate: select parameters0_.REF_MODEL_ID as REF_MODEL_ID2_1_0_, parameters0_.REF_MODEL_TYPE_PARAMETER_ID as REF_MODEL_TYPE_PAR1_1_0_, parameters0_.REF_MODEL_PARAMETER_ID as REF_MODEL_PARAMETE3_1_0_, parameters0_.REF_MODEL_TYPE_PARAMETER_ID as REF_MODEL_TYPE_PAR1_1_1_, parameters0_.REF_MODEL_ID as REF_MODEL_ID2_1_1_, parameters0_.REF_MODEL_PARAMETER_ID as REF_MODEL_PARAMETE3_1_1_, parameters0_.CREATE_DATE as CREATE_DATE4_1_1_, parameters0_.CREATE_USER as CREATE_USER5_1_1_, parameters0_.STATUS as STATUS6_1_1_, parameters0_.UPDATE_DATE as UPDATE_DATE7_1_1_, parameters0_.UPDATE_USER as UPDATE_USER8_1_1_, parameters0_.DESCRIPTION as DESCRIPTION9_1_1_, parameters0_.NAME as NAME10_1_1_, parameters0_.VALUE as VALUE11_1_1_ from T_REF_MODEL_PARAMETER parameters0_ where parameters0_.REF_MODEL_ID=?
Hibernate: select parameters0_.REF_MODEL_ID as REF_MODEL_ID2_1_0_, parameters0_.REF_MODEL_TYPE_PARAMETER_ID as REF_MODEL_TYPE_PAR1_1_0_, parameters0_.REF_MODEL_PARAMETER_ID as REF_MODEL_PARAMETE3_1_0_, parameters0_.REF_MODEL_TYPE_PARAMETER_ID as REF_MODEL_TYPE_PAR1_1_1_, parameters0_.REF_MODEL_ID as REF_MODEL_ID2_1_1_, parameters0_.REF_MODEL_PARAMETER_ID as REF_MODEL_PARAMETE3_1_1_, parameters0_.CREATE_DATE as CREATE_DATE4_1_1_, parameters0_.CREATE_USER as CREATE_USER5_1_1_, parameters0_.STATUS as STATUS6_1_1_, parameters0_.UPDATE_DATE as UPDATE_DATE7_1_1_, parameters0_.UPDATE_USER as UPDATE_USER8_1_1_, parameters0_.DESCRIPTION as DESCRIPTION9_1_1_, parameters0_.NAME as NAME10_1_1_, parameters0_.VALUE as VALUE11_1_1_ from T_REF_MODEL_PARAMETER parameters0_ where parameters0_.REF_MODEL_ID=?
Hibernate: select parameters0_.REF_MODEL_ID as REF_MODEL_ID2_1_0_, parameters0_.REF_MODEL_TYPE_PARAMETER_ID as REF_MODEL_TYPE_PAR1_1_0_, parameters0_.REF_MODEL_PARAMETER_ID as REF_MODEL_PARAMETE3_1_0_, parameters0_.REF_MODEL_TYPE_PARAMETER_ID as REF_MODEL_TYPE_PAR1_1_1_, parameters0_.REF_MODEL_ID as REF_MODEL_ID2_1_1_, parameters0_.REF_MODEL_PARAMETER_ID as REF_MODEL_PARAMETE3_1_1_, parameters0_.CREATE_DATE as CREATE_DATE4_1_1_, parameters0_.CREATE_USER as CREATE_USER5_1_1_, parameters0_.STATUS as STATUS6_1_1_, parameters0_.UPDATE_DATE as UPDATE_DATE7_1_1_, parameters0_.UPDATE_USER as UPDATE_USER8_1_1_, parameters0_.DESCRIPTION as DESCRIPTION9_1_1_, parameters0_.NAME as NAME10_1_1_, parameters0_.VALUE as VALUE11_1_1_ from T_REF_MODEL_PARAMETER parameters0_ where parameters0_.REF_MODEL_ID=?
Hibernate: select parameters0_.REF_MODEL_ID as REF_MODEL_ID2_1_0_, parameters0_.REF_MODEL_TYPE_PARAMETER_ID as REF_MODEL_TYPE_PAR1_1_0_, parameters0_.REF_MODEL_PARAMETER_ID as REF_MODEL_PARAMETE3_1_0_, parameters0_.REF_MODEL_TYPE_PARAMETER_ID as REF_MODEL_TYPE_PAR1_1_1_, parameters0_.REF_MODEL_ID as REF_MODEL_ID2_1_1_, parameters0_.REF_MODEL_PARAMETER_ID as REF_MODEL_PARAMETE3_1_1_, parameters0_.CREATE_DATE as CREATE_DATE4_1_1_, parameters0_.CREATE_USER as CREATE_USER5_1_1_, parameters0_.STATUS as STATUS6_1_1_, parameters0_.UPDATE_DATE as UPDATE_DATE7_1_1_, parameters0_.UPDATE_USER as UPDATE_USER8_1_1_, parameters0_.DESCRIPTION as DESCRIPTION9_1_1_, parameters0_.NAME as NAME10_1_1_, parameters0_.VALUE as VALUE11_1_1_ from T_REF_MODEL_PARAMETER parameters0_ where parameters0_.REF_MODEL_ID=?
Hibernate: select parameters0_.REF_MODEL_ID as REF_MODEL_ID2_1_0_, parameters0_.REF_MODEL_TYPE_PARAMETER_ID as REF_MODEL_TYPE_PAR1_1_0_, parameters0_.REF_MODEL_PARAMETER_ID as REF_MODEL_PARAMETE3_1_0_, parameters0_.REF_MODEL_TYPE_PARAMETER_ID as REF_MODEL_TYPE_PAR1_1_1_, parameters0_.REF_MODEL_ID as REF_MODEL_ID2_1_1_, parameters0_.REF_MODEL_PARAMETER_ID as REF_MODEL_PARAMETE3_1_1_, parameters0_.CREATE_DATE as CREATE_DATE4_1_1_, parameters0_.CREATE_USER as CREATE_USER5_1_1_, parameters0_.STATUS as STATUS6_1_1_, parameters0_.UPDATE_DATE as UPDATE_DATE7_1_1_, parameters0_.UPDATE_USER as UPDATE_USER8_1_1_, parameters0_.DESCRIPTION as DESCRIPTION9_1_1_, parameters0_.NAME as NAME10_1_1_, parameters0_.VALUE as VALUE11_1_1_ from T_REF_MODEL_PARAMETER parameters0_ where parameters0_.REF_MODEL_ID=?
Hibernate: select parameters0_.REF_MODEL_ID as REF_MODEL_ID2_1_0_, parameters0_.REF_MODEL_TYPE_PARAMETER_ID as REF_MODEL_TYPE_PAR1_1_0_, parameters0_.REF_MODEL_PARAMETER_ID as REF_MODEL_PARAMETE3_1_0_, parameters0_.REF_MODEL_TYPE_PARAMETER_ID as REF_MODEL_TYPE_PAR1_1_1_, parameters0_.REF_MODEL_ID as REF_MODEL_ID2_1_1_, parameters0_.REF_MODEL_PARAMETER_ID as REF_MODEL_PARAMETE3_1_1_, parameters0_.CREATE_DATE as CREATE_DATE4_1_1_, parameters0_.CREATE_USER as CREATE_USER5_1_1_, parameters0_.STATUS as STATUS6_1_1_, parameters0_.UPDATE_DATE as UPDATE_DATE7_1_1_, parameters0_.UPDATE_USER as UPDATE_USER8_1_1_, parameters0_.DESCRIPTION as DESCRIPTION9_1_1_, parameters0_.NAME as NAME10_1_1_, parameters0_.VALUE as VALUE11_1_1_ from T_REF_MODEL_PARAMETER parameters0_ where parameters0_.REF_MODEL_ID=?
Hibernate: select parameters0_.REF_MODEL_ID as REF_MODEL_ID2_1_0_, parameters0_.REF_MODEL_TYPE_PARAMETER_ID as REF_MODEL_TYPE_PAR1_1_0_, parameters0_.REF_MODEL_PARAMETER_ID as REF_MODEL_PARAMETE3_1_0_, parameters0_.REF_MODEL_TYPE_PARAMETER_ID as REF_MODEL_TYPE_PAR1_1_1_, parameters0_.REF_MODEL_ID as REF_MODEL_ID2_1_1_, parameters0_.REF_MODEL_PARAMETER_ID as REF_MODEL_PARAMETE3_1_1_, parameters0_.CREATE_DATE as CREATE_DATE4_1_1_, parameters0_.CREATE_USER as CREATE_USER5_1_1_, parameters0_.STATUS as STATUS6_1_1_, parameters0_.UPDATE_DATE as UPDATE_DATE7_1_1_, parameters0_.UPDATE_USER as UPDATE_USER8_1_1_, parameters0_.DESCRIPTION as DESCRIPTION9_1_1_, parameters0_.NAME as NAME10_1_1_, parameters0_.VALUE as VALUE11_1_1_ from T_REF_MODEL_PARAMETER parameters0_ where parameters0_.REF_MODEL_ID=?
Hibernate: select parameters0_.REF_MODEL_ID as REF_MODEL_ID2_1_0_, parameters0_.REF_MODEL_TYPE_PARAMETER_ID as REF_MODEL_TYPE_PAR1_1_0_, parameters0_.REF_MODEL_PARAMETER_ID as REF_MODEL_PARAMETE3_1_0_, parameters0_.REF_MODEL_TYPE_PARAMETER_ID as REF_MODEL_TYPE_PAR1_1_1_, parameters0_.REF_MODEL_ID as REF_MODEL_ID2_1_1_, parameters0_.REF_MODEL_PARAMETER_ID as REF_MODEL_PARAMETE3_1_1_, parameters0_.CREATE_DATE as CREATE_DATE4_1_1_, parameters0_.CREATE_USER as CREATE_USER5_1_1_, parameters0_.STATUS as STATUS6_1_1_, parameters0_.UPDATE_DATE as UPDATE_DATE7_1_1_, parameters0_.UPDATE_USER as UPDATE_USER8_1_1_, parameters0_.DESCRIPTION as DESCRIPTION9_1_1_, parameters0_.NAME as NAME10_1_1_, parameters0_.VALUE as VALUE11_1_1_ from T_REF_MODEL_PARAMETER parameters0_ where parameters0_.REF_MODEL_ID=?
The first sql is fetch of parent record and remaining are fetch on child records.
How can I add and clause in child sql for example T_REF_MODEL_PARAMETER parameters0_ where parameters0_.REF_MODEL_ID=? and parameters0_.STATUS=?
Basically I want to pass status of parent to the child.
Thanks a lot in advance!
Criteria person = session.getCurrentSession().createCriteria(Person.class).createAlias("personId", "personId");
person.add(Restrictions.disjunction().add(Restrictions.ilike("PersonFirstname",Search,MatchMode.ANYWHERE))
.add(Restrictions.ilike("personId.Jacket",Search,MatchMode.ANYWHERE))
.add(Restrictions.ilike("personId.Color",Search,MatchMode.ANYWHERE))
.add(Restrictions.ilike("personId.Size",Search,MatchMode.ANYWHERE)));
Here from example restrictions you can put between your condition and get desired output
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.