Bom tarde,
Possuo as seguintes entidades:
public class Aluno {
private Escola escola = new Escola();
@Id
@GeneratedValue(strategy=GenerationType.AUTO, generator="id_creator")
@Column(name="id_aluno")
private Long id;
@Column(name="nome")
private String nome;
@OneToOne
@JoinColumn(name="id_contato")
private Contato contato = new Contato();
@Column(name="cpf")
private String cpf;
@Column(name="rg")
private String rg;
....getter/setters
}
e:
public class Contato {
@Id
@GeneratedValue(strategy=GenerationType.AUTO, generator="id_creator")
@Column(name="id_contato")
private Long id;
@Column(name="email")
private String email;
@Column(name="telefone")
private String telefone;
@Column(name="celular")
private String celular;
....getter/setters
}
ao realizar uma consulta:
public Aluno findByCpf(String cpf) throws DAOException {
FactoryDAO factory = BaseDAOFactory.getFactory();
AlunoDAO dao = factory.getAlunoDAO();
List<Order> order = new ArrayList<Order>();
List<Criterion> criterion = new ArrayList<Criterion>();
criterion.add(Restrictions.eq("escola.id", new Long(1)));
criterion.add(Restrictions.ilike("contato.email", aluno.getContato().getEmail(), MatchMode.ANYWHERE ));
List<Aluno> alunos = (List<Aluno>) dao.list(criterion, order);
...
}
utilizando criteria, estou recebendo o erro:
exception.DAOException: org.hibernate.QueryException: could not resolve property: contato.email of: entities.Aluno
Desde já agradeço.