Bom dia galera, estou com o seguinte problema , Tenho uma Classe Representante e uma Classe Cliente, dentro da classe Cliente tem um List de Representantes com o mapeamento ManyToMany e quando vou realizar a busca dos clientes (Criteria) do representante logado retorna o erro que a propriedade representante não existe em Cliente
Obs:CLIENTES_REPRESENTANTES é uma VIEW , com os atributos representante e cliente , que são as chaves
Classe Cliente
@Entity
@Table(name = "CLIENTES")
@Inheritance(strategy = TABLE_PER_CLASS)
public class Cliente extends PessoaJuridica {
...
@ManyToMany
@JoinTable(joinColumns = @JoinColumn(name = "cliente", referencedColumnName = "codigo"),
inverseJoinColumns = @JoinColumn(name = "representante", referencedColumnName = "codigo"))
public List<Representante> getRepresentantes() {
return representantes;
}
...
Classe Representante
@Entity
@Table(name = "REPRESENTANTES")
@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)
public class Representante extends PessoaJuridica {
...
@ManyToMany
@JoinTable(name = "CLIENTES_REPRESENTANTES",
joinColumns = @JoinColumn(name = "representante", referencedColumnName = "codigo"),
inverseJoinColumns = @JoinColumn(name = "cliente", referencedColumnName = "codigo"))
public List<Cliente> getClientes() {
return clientes;
}
...
Criteria
Criteria criteria = ComandoUtil.getSessionExtranet().createCriteria(Contrato.class);
Criteria criteriaClientes = ComandoUtil.getSessionExtranet().createCriteria(Cliente.class);
criteriaClientes.setProjection(Property.forName("codigo"));
criteriaClientes.createAlias("representante", "r");
criteriaClientes.add(Restrictions.eq("r.codigo", usuario.getPessoa().getCodigo()));
criteria.createAlias("usuario", "u");
criteria.add(Restrictions.in("u.pessoa.codigo", criteriaClientes.list()));
ERRO
Caused by: org.hibernate.QueryException: could not resolve property: representante of: br.com.sistema.model.Cliente
at org.hibernate.persister.entity.AbstractPropertyMapping.propertyException(AbstractPropertyMapping.java:67)
at org.hibernate.persister.entity.AbstractPropertyMapping.toType(AbstractPropertyMapping.java:61)
at org.hibernate.persister.entity.AbstractEntityPersister.toType(AbstractEntityPersister.java:1385)
at org.hibernate.loader.criteria.CriteriaQueryTranslator.getPathEntityName(CriteriaQueryTranslator.java:227)
at org.hibernate.loader.criteria.CriteriaQueryTranslator.createCriteriaEntityNameMap(CriteriaQueryTranslator.java:214)
at org.hibernate.loader.criteria.CriteriaQueryTranslator.<init>(CriteriaQueryTranslator.java:104)
at org.hibernate.loader.criteria.CriteriaLoader.<init>(CriteriaLoader.java:82)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1577)
at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:306)