@Entity(name = "Reg")
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class Funcionario {
@Id
@Column(name = "codigo")
private int idFuncionario;
private String nome;
private String jornada;
private String rg;
private String emprego;
@Temporal(TemporalType.DATE)
@Column(name = "dtdemissao")
private Calendar dtDemissao = new GregorianCalendar();
@ManyToOne
@JoinColumn(name = "codsecret", nullable = false)
private Organograma organograma;
@OneToMany(mappedBy = "funcionario")
private List<Abono> abono = new ArrayList<Abono>();
@OneToMany(mappedBy = "funcionario")
private List<Folga> folga = new ArrayList<Folga>();
@OneToMany(mappedBy = "funcionario")
private List<BancoHoras> bancoHoras = new ArrayList<BancoHoras>();
@OneToMany(mappedBy = "funcionario")
private List<BaixaHoras> baixaHoras = new ArrayList<BaixaHoras>();
@OneToMany(mappedBy = "funcionario")
private List<Ponto> ponto = new ArrayList<Ponto>();
@OneToMany(mappedBy = "funcionario")
private List<Ferias> ferias = new ArrayList<Ferias>();
@OneToMany(mappedBy = "funcionario")
private List<Gpm> gpm = new ArrayList<Gpm>();
@OneToMany(mappedBy = "funcionario")
private List<Horario> horario = new ArrayList<Horario>();
@OneToMany(mappedBy = "funcionario")
private List<ExtratoHoras> extratoHoras = new ArrayList<ExtratoHoras>();
/*getters e setters */
@Entity
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class Organograma {
@Id
@Column(name = "codigo")
private int id;
@Column(name = "nome")
private String descricao;
@OneToMany(mappedBy = "organograma")
private List<Funcionario> funcionario = new ArrayList<Funcionario>();
/* getters e setters*/
}
@Entity(name = "cdPonto")
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class Ponto {
@Id
private int id;
@Temporal(TemporalType.DATE)
private Calendar data = new GregorianCalendar();
private Time horario;
private int tipo;
@ManyToOne
@JoinColumn(name = "idFunci", nullable = false)
private Funcionario funcionario;
}
Então estando mapeadas minhas classes quando vou executar minha criteria:
public List<Funcionario> listaFuncionarioOrganograma(int organograma, Calendar dataInicial, Calendar dataFinal){
Criteria criteria = session.createCriteria(Funcionario.class);
criteria.add(Restrictions.eq("organograma.id", organograma));
criteria.add(Restrictions.ge("ponto.data", dataInicial));
criteria.setCacheable(true);
return criteria.list();
}
Porem nessa situação é retornado o seguinte erro:
org.hibernate.QueryException: could not resolve property: ponto.data of: br.com.jsfwebpref.modelo.Funcionario
A pergunta é o q esta errado nessa criteria? Ja tentei fazer sub criterias … alias …
mais nada funcionou