E aí galera, beleza?
Estou começando meus studos em jpa annotation com hibernate mas, ja encontrei um problema.
estou tentando criar uma criteria para buscar um item um nivel no agregação de um vo mas, por algum motivo não consigo, o hibernate informa que o parametro não existe.
Meus mapeamentos:
@Entity
@Table(name="coordenador")
public class Coordenador implements VO{
/**
*
*/
private static final long serialVersionUID = -8910674378340122298L;
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
@Column(name="matriculacoordenador",unique=true,nullable=false)
private String matriculaCoordenador;
@Column(name="nome",nullable=false,length=45)
private String nome;
@OneToMany(mappedBy="codigo")
private Collection<AgendaAdmissao> agendaAdmissao;
//getters...
//setters
}
@Entity
@Table(name="agendaadmissao")
public class AgendaAdmissao implements VO{
/**
*
*/
private static final long serialVersionUID = -8970168923522573021L;
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
@Column(name="codigoagenda",unique=true,nullable=false)
private Long codigo;
@Column(name="nomecandidato",nullable=false)
private String nomeCandidato;
@ManyToOne
@JoinColumn(name="matriculacoordenador",nullable=false,insertable=true, updatable=true)
private Coordenador coordenador;
@ManyToOne
@JoinColumn(name="codigocurso",nullable=false,insertable=true, updatable=true)
private Curso curso;
@Column(name="data",nullable=false)
private Date data;
@Column(name="status",nullable=false)
private String status;
//getters...
//setters
}
criteria.add(Expression.eq("coordenador.nome", "Coordenador 2"));
Como podem perceber o parametro "coordenador.nome" está devidamente mapeado.
O engraçado é que se eu buscar pela chave da classe coordenador funcionacorretamente:
[code]
criteria.add(Expression.eq("coordenador.matriculaCoordenador", "p100"));
Creio que me esqueci de algo no mapeamento. Se puderem me ajudar eu agradeço.