Olá Lista!
Não estou conseguindo buscar por um determinado atributo usando Hibernate Annotation.
Por hora o erro que está dando é:
Ou seja, erro na NamedQuery, mas não consegui identificar o erro…
Obs.: NamedQuery gerada pelo NetBeans (pode ser que eu… sem ver… tenha alterado ela… e por isso… o erro… mas não encontro)
package dto;
import java.io.Serializable;
import javax.persistence.*;
import dto.Usuarios;
@Entity
@Table(name = "permissoes")
@NamedQueries({@NamedQuery(name = "Permissoes.findByUsuarioId", query = "SELECT i FROM Permissoes i WHERE i.usuarioId = :usuarioId")})
public class Permissoes implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "id", nullable = false)
private Integer id;
@Column(name = "inventario")
private Integer inventario;
@Column(name = "helpdesk")
private Integer helpdesk;
@ManyToOne
@JoinColumn(name="usuario_id")
private Usuarios Usuarios;
public Usuarios getUsuarios(){
return this.Usuarios;
}
public void setUsuarios(Usuarios Usuarios){
this.Usuarios = Usuarios;
}
public Permissoes() {
}
public Permissoes(Integer id) {
this.id = id;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getInventario() {
return inventario;
}
public void setInventario(Integer inventario) {
this.inventario = inventario;
}
public Integer getHelpdesk() {
return helpdesk;
}
public void setHelpdesk(Integer helpdesk) {
this.helpdesk = helpdesk;
}
}
Outro problema é na hora de buscar… Não sei se minha implementação está certa.
Veja só:
public Permissoes getByIdUsuario(Usuarios Usuario) throws PermissoesException{
Session session = getCurrentSession();
System.out.println("PermissoesDaoImpl: getByIdUsuario");
try{
Query query = session.getNamedQuery("Permissoes.findByUsuarioId");
query.setEntity("usuarioId", Usuario);
return (Permissoes) query.uniqueResult();
}catch(Exception e){
e.printStackTrace();
throw new IolPermissoesException(e);
}
}
Quero buscar no bd… a minha permissão, cuja fk… usuarioId, seja o Usuario;
Porém, não está funcionando.
Fica retornando NullPointException… mas ele chega nessa função…
e existe no banco… uma linha com a coluna igual ao usuário que eu to informando…
quando eu tento:
query.setInteger("usuarioId", 13); // teste direto no usuário que eu sei que existe essa relação no banco
(No lugar da linha 5 acima)
também da o erro de NullPointException.