Problema com @Query

Prezados, boa noite!!

Estou com um pequeno problema de seleção de registros. Tenho uma tabela “Cliente” e outra “Endereço”, Na tabela “Endereco”, eu tenho um campo chamado “principal” tipo INT. Esse campo se refere se o endereço do cliente e o principal ou não. “1” principal “0” não. Segue das classes.

Cliente


@Entity
@Data
public class Cliente {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

private String nome;

@OneToMany
@JoinColumn(name = "id_cliente")
private List<Endereco> enderecos;

}

Endereco


@Entity
@Data
public class Endereco {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

private String nome;

private int principal;
private String bairro;

}

No meu repositório de cliente, estou usando o seguinte select
@Query(value = "SELECT c FROM Cliente c JOIN c.enderecos e " +
“WHERE e.principal = 1 AND c.id = 1”)
public List listaTodos();

Fixei o id do cliente, só para ver o resultado.

Quando o json é retornado, ele me vem com todos os endereços do cliente cadastrado, tanto como (1) ou (0), ele não obedece a query. Peço ajuda de todos, aonde estou errando ou se é possível.

Grato.

Se você olhar a documentação do @Query você vai ver que por padrão ele não aceita SQL nativo e sim JPQL, aparentemente você está utilizando SQL nativo e neste caso precisa adaptar a anotação utilizando-a da forma correta!

@Query(" … ", nativeQuery = true)

Pq int e não boolean? Deixa a implementação do JPA trabalhar pra vc rapaz!

@Query(“SELECT u FROM User u WHERE u.status = 1”)
Collection findAllActiveUsers();

@Query(
value = “SELECT * FROM USERS u WHERE u.status = 1”,
nativeQuery = true)
Collection findAllActiveUsersNative();