Bom dia!
Tenho as seguintes classes:
public class BaseDatas implements Serializable {
@Id
@OneToOne
private Base base;
@Temporal(value = TemporalType.DATE) //primeira, antes do despacho
private Date inclusao;
}
public class Base implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
@ManyToOne
private Status status;
}
public class Status implements Serializable{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
}
Gostaria de fazer um filtro no id de status, utilizando Criteria (por sql e hql eu consigo normalmente), mas não sei como chegar… sempre da unknown colum.
assim nĂŁo funciona:
Criteria c = getSession().createCriteria(BaseDatas.class)
.createCriteria(“base”, “kt”)
.createCriteria(“status”, “status”)
.add( Restrictions.ne(“id”, 199) );
Assim também não:
Criteria c = getSession().createCriteria(BaseDatas.class);
Criteria s = c.createCriteria(“base.status”);
Criteria s2 = s.createCriteria(“status”);
s2.add(Restrictions.ge(“id”, 60));
por ai vai…
O select é fácil…:
SELECT aec_BaseDatas.inclusao, aec_Base.id, aec_Base.status_id
FROM aec_BaseDatas INNER JOIN aec_Base ON aec_BaseDatas.base_id = aec_Base.id
WHERE ((aec_Base.status_id)>=60 And (aec_Base.status_id)<>199);