[RESOLVIDO] org.hibernate.QuerySyntaxException: e is not mapped [SELECT X FROM e X]

O hibernate levanta esta exceção ao tentar retornar uma lista do banco.

método do repositório:

	public List<Endereco> getLista() {
		Query query = manager.createQuery("SELECT X FROM endereco x");
		return query.getResultList();
	}

modelo:

@Entity
public class Endereco {
	@Id
	@GeneratedValue
	private Long codEndereco;
	private String rua;
	private Integer numero;
	private String bairro;
	private String cidade;
	private String estado;
	private String cep;	
	private String complemento;
        
        // get´s e set´s

persistence.xml:

<?xml version="1.0" encoding="UTF-8"?>

<persistence version=" 2.0 "
	xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">

	<persistence-unit name="catenna" transaction-type="RESOURCE_LOCAL">
		<provider>org.hibernate.ejb.HibernatePersistence</provider>	
		<class>br.com.catenna.modelo.entidade.pais.Pais</class>	
		<class>br.com.catenna.modelo.entidade.filhos.Filhos</class>
		<class>br.com.catenna.modelo.entidade.endereco.Endereco</class>
		<properties>
			<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect"/>
			<property name="hibernate.hbm2ddl.auto" value="update" />
			<property name="hibernate.show_sql" value="true" />
			<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
			<property name="javax.persistence.jdbc.user" value="root"/>
			<property name="javax.persistence.jdbc.password" value=""/>
			<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/catenna"/>
		</properties>
	</persistence-unit>
</persistence>

Onde tenho que fazer este mapeamento que o Hibernate está levantando?
tenho que mapear a sintaxe SQL no Hibernate/HQL?

Tente fazer assim:

Query query = manager.createQuery("SELECT x FROM Endereco x")

Primeiro vc esta fazendo consultas orientadas a objetos logo o Endereco deve ser a entidade.
Segundo o alias do endereco está com xis minúsculo, mas depois do select esta maiscúla.

1 curtida

Valeu cmonteiro,

É isso mesmo!

Valeu cmonteiro,

É isso mesmo!