[FECHADO] Hibernate Query Language - Um Select simples

Olá pessoa. Sou novo nesse mundo de Spring, Hibernate, HQL, JPA, etc. Por isso me desculpem pela dúvida que poderá parecer um tanto quanto simples.
Tenho as seguintes tabelas:

@Repository
public class AutenticacaoDAOImpl implements AutenticacaoDAO {

@PersistenceContext
private EntityManager manager;

@Override
public List<Usuario[]> obterUsuarioPeloLogin(LoginDTO loginDTO) {

	String hql = "from Usuario";

	Query query = manager.createQuery(hql);
	List<Usuario[]> listResult = query.getResultList();

	/*for (Usuario[] row : listResult) {
		Usuario usuario = row[0];
	}*/

	return listResult;
}

}

Não tenho problema com paramêtros mas sim em fazer o JOIN. Por padrão o Hibernate retorna os objetos conforme o mapeamento.
Nesse caso abaixo, um select simples na tabela Usuario ele está me retornando a tabela Pessoa e PessoaFisica, porém não a Academico que contém o id (chave primária) que futuramente seria a matrícula.
Enfim preciso fazer o JOIN entre a PessoaFisica e a Academico.

Agradeço desde já a ajuda.

O que você precisa buscar, exatamente?
Em específico, a busca

FROM Usuario

Retornará todos os objetos da classe Usuario já preenchidos (isso inclui os atributos que são outros objetos). Não me recordo, mas, tem a ver com mapeamento como EAGER ou LAZY para o fetch mode.
Pelo que entendi do teu DER (e isso não é lá aquelas coisas para entender relação entre objetos), academico é um objeto à parte, ele contém uma pessoa física, isso? se é, então o mesmo deve funcionar para

FROM Academico

Caro Darlan, o LoginDTO contém matricula e senha. A matricula seria a primary key da tabela Academico (futuramente alterarei isso rsrs), já a senha está na tabela Usuario.
Sobre o mapeamento ser EAGER ou LAZY, atualmente tenho o seguinte:

Usuario:
@Id
@Column(name = “id_usuario”)
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;

@ManyToOne
@JoinColumn(name = “id_pessoa_fisica”)
private PessoaFisica pessoaFisica;

Academico:
@Id
@Column(name = “id_academico”)
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;

@ManyToOne
@JoinColumn(name = “id_pessoa_fisica”)
private PessoaFisica pessoaFisica;

Pessoa:
@Id
@Column(name = “id_pessoa”)
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;

@Column(name = “nome_pessoa”)
private String nomePessoa;

PessoaFisica:
@Id
@Column(name = “id_pessoa_fisica”)
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;

@ManyToOne
@JoinColumn(name = “id_pessoa”)
private Pessoa pessoa;

Cara, sendo bem sincero, está bem confuso.
Primeiro, não entendi a razão pela qual você faz uma relação ManyToOne entre acadêmico e pessoa física. É para ter distinção da matrícula e poder ter o mesmo aluno matriculado em mais de um curso?
Poderia criar uma tabela de autenticação, isolada de todas, mas, ok.

Bom, basicamente, fica algo:

FROM Academico a JOIN a.pessoaFisica pf WHERE a.id = ?1 AND pf.senha = ?2

Isso deve resolver.

Sim Darlan. O modelo anexado não está completo.
Obrigado pela ajuda. Deu certo!