Tenho a Classe Empresa Filial:
@Entity
@Table(name = “ORG.FILIAL”)
public class EmpresaFilial implements Serializable {
@Id
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name = “CGC_NUMERO”, referencedColumnName=“CGC_NUMERO”)
private Empresa empresa;
@Id
@Column(name = "CGC_FILIAL")
private String sufixoCNPJ;
.
.
.
}
A classe empresa:
@Entity
@Table(name=“ORG.EMPRESA”)
public class Empresa {
@Id
@Column(name=“CGC_NUMERO”)
private String raizCNPJ;
@Column(name="ID_EMPRESA")
private int idEmpresa;
.
.
.
}
Problema: Preciso fazer uma seleção na minha classe Empresafilial, retornar todas as filiais de uma determinada empresa. Na minha Classe EmpresaFilialDAO, estou usando Criteria. Tentei fazer o seguinte:
public List<EmpresaFilial> pegaPorSufixo(String sufixoCNPJ) {
Criteria c = session.createCriteria(EmpresaFilial.class, ?f?);
c.createCriteria("empresa",?E?);
c.add(Restrictions.eq("f.sufixoCNPJ", sufixoCNPJ));
c.add(Restrictions.eq("e.raizCNPJ","01.243.305"));
return (List<EmpresaFilial>) c.list();
}
}
Na hora de montar a SQL. Ele não faz o inner join com a Empresa.