我在映射jpa時遇到問題,如果任何人有更多使用jpa的經驗並且可以幫助我。org.hibernate.MappingException:無法確定類型爲:java.util.Comparator
我在互聯網上跑了一些搜索,但nothings適合我。
我希望我會得到一些修復!
謝謝!
這裏我的代碼:
Metodologia.java
@Entity
@Table(name = "metodologias")
public class Metodologia {
@Id @GeneratedValue
private int id;
private String nombre;
@ManyToMany
@JoinTable(
name = "METODOLOGIA_CONDICION",
joinColumns = {@JoinColumn(name = "METODOLOGIA_ID")},
inverseJoinColumns = {@JoinColumn(name = "CONDICION_ID")}
)
private List<Condicion> condiciones;
public Metodologia(String n) {
this.nombre = n;
this.condiciones = new ArrayList<Condicion>();
}
public void addCondicion(Condicion con) {
this.condiciones.add(con);
}
public String getNombre() {
return this.nombre;
}
public ArrayList<ResultadoEmpresa> evaluarEmpresas(ArrayList<Empresa> empresas, ArrayList<Indicador> indicadores) throws Exception {
ArrayList<ResultadoEmpresa> resultados = new ArrayList<ResultadoEmpresa>();
ArrayList<ResultadoEmpresa> res;
empresas.forEach(emp->resultados.add(new ResultadoEmpresa(emp.getNombre(), 0)));
for (Condicion con : condiciones) {
res = con.evaluar(empresas, indicadores);
for (ResultadoEmpresa resemp : res)
for (ResultadoEmpresa emp : resultados)
if (emp.getEmpresa().equals(resemp.getEmpresa()))
emp.sumar(resemp.getValor());
}
return ordenarLista(resultados);
}
Comparator<ResultadoEmpresa> byValor = new Comparator<ResultadoEmpresa>() {
public int compare(ResultadoEmpresa left, ResultadoEmpresa right) {
if (left.getValor() > (right.getValor())) {
return -1;
} else {
return 1;
}
}
};
private ArrayList<ResultadoEmpresa> ordenarLista(ArrayList<ResultadoEmpresa> emp) {
Collections.sort(emp, byValor);
return emp;
}
}
這是在執行一個錯誤報告,
Caused by: org.hibernate.MappingException: Could not determine type for: java.util.Comparator, at table: metodologias, for columns: [org.hibernate.mapping.Column(byValor)]
at org.hibernate.mapping.SimpleValue.getType(SimpleValue.java:336)
at org.hibernate.mapping.SimpleValue.isValid(SimpleValue.java:310)
at org.hibernate.mapping.Property.isValid(Property.java:241)
at org.hibernate.mapping.PersistentClass.validate(PersistentClass.java:496)