我試圖使用Criteria API來獲取按其瞬態severidadeRecente
屬性排序的List<Csr>
。瞬態屬性會導致org.hibernate.QueryException:無法解析屬性:severidadeRecente:br.com.timbrasil.bluemonster.modelo.Csr
實體和我使用的關係:
@Entity
@Table(name = "csr")
public class Csr implements Serializable {
@OneToMany(cascade = CascadeType.ALL, mappedBy = "csr")
private List<CsrSeveridadeLog> severidadeLogList;
//Used to get and set the most recent Severidade
@Transient
private CsrSeveridadeLog severidadeRecente;
public CsrSeveridadeLog getSeveridadeRecente() {
Calendar compare = null;
CsrSeveridadeLog recente = null;
for (CsrSeveridadeLog log : severidadeLogList) {
if (compare == null) {
compare = log.getData();
recente = log;
}
if (log.getData().after(compare)) {
recente = log;
}
}
return recente;
}
我使用的是下面的條件查詢:
Criteria criteria = session.createCriteria(Csr.class,"csr");
if ("severidadeRecente".equals(filtro.getPropriedadeOrdenacao())) {
criteria.createAlias("csr.severidadeRecente", "severidadeRecente");
}
的filtro.getPropriedadeOrdenacao()
是來自客戶端。
,但我得到以下異常:
產生的原因:org.hibernate.QueryException:無法解析屬性:的severidadeRecente:br.com.timbrasil.bluemonster.modelo.Csr
我該如何解決它?我需要根據我的實體擁有的List
來訂購我的表格,並在該列表中記錄最近的記錄。
您是否找到解決方案? – kavain
@kavain我不得不改變我的方法,但szarpul的答案是正確的。 我不得不使用列表並在Csr類中使用CsrSeveridadeLog,這樣我就可以使用該命令。 希望它有幫助 –
prabello
你想介紹一下我的問題嗎? http://stackoverflow.com/questions/32598960/how-to-make-a-criteria-with-select-order-by-avg-function-in-a-one-to-many-re – kavain