Ajudinha com uma busca no bd

Estou tentando fazer uma busca no meu banco ao fazer o cadastro de Usuário.

Seguinte, no meu cadastro de usuário tem dois Spinner(Empresa, Pessoa) Gostaria de popular o Spinner pessoa com apenas as pessoas que trabalham na empresa selecionada. Porém a lógica que to seguindo não vai me retornar nada pois a entidade pessoa não possui o código da empresa. Então como trago esses dados filtrados?

Vou postar abaixo minha estrutura e meu código.

estrutct

empresaBean

public void popular() {
	try {
		if (empresa != null) {
			PessoaDAO pessoaDAO = new PessoaDAO();
			pessoas = pessoaDAO.buscarPorEmpresa(empresa.getCodigo());
			
		} else {
			pessoas = new ArrayList<>();
		}
	} catch (RuntimeException erro) {
		Messages.addGlobalError("Ocorreu um erro ao tentar filtrar as cidades");
		erro.printStackTrace();
	}
}

pessoaDAO

@SuppressWarnings("unchecked")
public List<Pessoa> buscarPorEmpresa(Long empresaCodigo) {
	Session sessao = HibernateUtil.getFabricaDeSessoes().openSession();
	try {
		Criteria consulta = sessao.createCriteria(Pessoa.class);
		consulta.add(Restrictions.eq("empresa.codigo", empresaCodigo));	
		consulta.addOrder(Order.asc("nome"));
		List<Pessoa> resultado = consulta.list();
		return resultado;
	} catch (RuntimeException erro) {
		throw erro;
	} finally {
		sessao.close();
	}
}

usuario.xhtml

<p:outputLabel for="empresa" value="Empresa: " />
			<p:selectOneMenu id="empresa" filter="true"
				value="#{empresaBean.empresa}" required="true"
				requiredMessage="O campo 'Empresa' é obrigatório"
				converter="omnifaces.SelectItemsConverter">
				<f:selectItem noSelectionOption="true"
					itemLabel="Selecione uma empresa" />
				<f:selectItems value="#{empresaBean.empresas}" var="empresa"
					itemValue="#{empresa}" itemLabel="#{empresa.nome}" />
					<p:ajax listener="#{usuarioBean.popular}" update=":formCadastro:pessoa" />
			</p:selectOneMenu>
		
			<p:outputLabel for="pessoa" value="Pessoa:" />
			<p:selectOneMenu id="pessoa" filter="true"
				value="#{usuarioBean.usuario.pessoa}" required="true"
				requiredMessage="O campo 'Pessoa' é obrigatório"
				converter="omnifaces.SelectItemsConverter">
				<f:selectItem noSelectionOption="true"
					itemLabel="Selecione uma pessoa" />
				<f:selectItems value="#{usuarioBean.pessoas}" var="pessoa"
					itemValue="#{pessoa}" itemLabel="#{pessoa.nome} - #{pessoa.cpf}" />
			</p:selectOneMenu>

Fala ai @Rafael_Victor blz, vamos la vou te dar uma meia ajuda, segue o codigo SQL que vai solucionar essa sua questao, dai voce vai precisar traduzi-lo para o hibernate.

SELECT p.codigo,p.nome FROM Pessoa p
INNER JOIN Usuario u ON u.pessoa_codigo = p.codigo
INNER JOIN Empresa e ON u.empresa_codigo = e.codigo
WHERE e.codigo = – << Aki entra a ID da Empresa

Abraços
Max