Prezados, estou com problema ao tentar efetura login, que so retorna por parametro da seguinte forma: login?error
Estou utilizando o PostGre.
Com isso, no meu banco a tabela User é composta por colunas (email-PK, name, password). Debugando, descobri que o codigo para na query, mas não é lançando nenhuma exception do tipo "nao encontrado tabela x", "nao encontrado coluna x" ... Simplesmente ele printa o resultado que é:
Hibernate: select user0_.email as email1_3_, user0_.name as name2_3_, user0_.password as password3_3_ from User user0_ where user0_.email=?
Hibernate: select user0_.email as email1_3_, user0_.name as name2_3_, user0_.password as password3_3_ from User user0_ where user0_.email=?
Hibernate: select user0_.email as email1_3_, user0_.name as name2_3_, user0_.password as password3_3_ from User user0_ where user0_.email=?neste caso, três tentativas de login.
Meu palpite é que tenha algo errado com o banco, ou a forma em que ele foi montado, então veja no link abaixo as imagens que demonstram minhas tabelas e sua estrutura: https://drive.google.com/drive/folders/1cujvAC1JhHDEL00UslQarCXV9L2hmiye?usp=sharing
Ainda, a classe onde a Query está sendo realziada:
@Repository
public class UserDAO implements UserDetailsService {
@PersistenceContext
private EntityManager manager;
@Override
public User loadUserByUsername(String email) {
System.out.println();
List <User> users =
manager.createQuery("select u from User u where email = :email", User.class)
.setParameter("email", email).getResultList();
if(users.isEmpty()) {
throw new UsernameNotFoundException("Usuario " + email + "não foi encontrado no sistema");
}
System.out.println();
return users.get(0);
}
}Tambem, segue o codigo das Entidades:
@Entity
public class User implements UserDetails {
private static final long serialVersionUID = 1L;
@Id
private String email;
private String name;
private String password;
@OneToMany(fetch=FetchType.EAGER)
private List<Role> roles = new ArrayList<>();
@Override
public Collection<? extends GrantedAuthority> getAuthorities() {
return this.roles;
}
@Override
public String getPassword() {
// TODO Auto-generated method stub
return this.password;
}
@Override
public String getUsername() {
// TODO Auto-generated method stub
return this.email;
}
@Override
public boolean isAccountNonExpired() {
// TODO Auto-generated method stub
return true;
}
@Override
public boolean isAccountNonLocked() {
// TODO Auto-generated method stub
return true;
}
@Override
public boolean isCredentialsNonExpired() {
// TODO Auto-generated method stub
return true;
}
@Override
public boolean isEnabled() {
// TODO Auto-generated method stub
return true;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void setPassword(String password) {
this.password = password;
}
public List<Role> getRoles() {
return roles;
}
public void setRoles(List<Role> roles) {
this.roles = roles;
}
}
@Entity
public class Role implements GrantedAuthority{
private static final long serialVersionUID = 1L;
@Id
private String name;
@Override
public String getAuthority() {
return this.name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}Por favor, me ajudem. Estou aguarrado a dias neste ponto e não consigo resolver.