Olá! Há muito tempo não venho por aqui e já peço desculpas pelo incomodo.
Estou fazendo um sistema relativamente pequeno mas cheios de detalhes, que o deixam grande.
Baseia-se em um cadastro de bandas onde um usuário inicial se inscreve:
-Classe usuario
–id
–login
–senha
–email
–administrador
Este usuário pode cadastrar uma banda:
-Classe banda
–id
–nome
–idusuario
–dataformacao
–genero
–lista de agenda
–acessos
Esta banda tem integrantes:
-Classe Integrante
–id
–nome
– funcao
–email
–dataingresso
–datanascimento
A banda também possui um gênero onde seu código na mesma tabela referênciado pelo id:
-Classe Genero
–id
–descrição
e o usuário possui um atributo booleano que categoriza como administrador ou não. Tenho 2 problemas!
Preciso criar uma pesquisa do tipo Criteria para listar a agenda completa da banda:
public List<Band> findCriteriaBandByUser(User user) {
crit = em.getCriteriaBuilder();
CriteriaQuery<Band> query = crit.createQuery(Band.class);
Root<Band> band= query.from(Band.class);
query.where(crit.equal(Band.get("usuario"),user.id ));
band= em.createQuery(query).getResultList();
result bands;
}
Mas não sei exatamente se isto está retornando a banda pelo código do usuario. Infelizmente não tenho como testar isto em casa. Triste.
Também tenho dúvidas com relação a como devo criar os beans. Sempre que tento executar o projeto, recebo um erro dizendo que o construtor do userBean não é válido mesmo não tendo construtor, se crio construtor diz que o método construtor possui parametros não publicos(não há parametros no construtor).
Não sei mais o que fazer.
Meu UserBean:
package managedbeans;
import dao.DaoGeneric;
import entities.User;
import interfaces.InterfaceBean;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.context.FacesContext;
import javax.persistence.PersistenceContext;
import javax.servlet.http.HttpSession;
@ManagedBean(name = "userBean")
public class UserBean implements InterfaceBean<User> {
@PersistenceContext(name = "ProjetoFinalFinal")
private User usuario, user;
private DaoGeneric<User> dao;
private List<User> usuarios;
private FacesContext ctx = FacesContext.getCurrentInstance();
private FacesContext context;
private String sql, login, classe;
private Class<User> clazz;
private HttpSession session;
public boolean verificaLogin(User usuario) {
this.login = this.usuario.getLogin();
this.classe = this.clazz.getSimpleName();
this.sql = "select o from " + this.classe + " o where o.login = '" + this.login + "'";
this.user = (User) dao.busca(this.sql);
if (this.user.getLogin().equals(this.usuario.getLogin())
&& this.user.getSenha().equals(this.usuario.getSenha())) {
return true;
} else {
return false;
}
}
public List<User> getUsuarios() {
usuarios = dao.listar();
return usuarios;
}
public void setUsuarios(List<User> usuarios) {
this.usuarios = usuarios;
}
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
public User getUsuario() {
return usuario;
}
public void setUsuario(User usuario) {
this.usuario = usuario;
}
public User buscar(long id) {
usuario = dao.pesquisar(id);
return usuario;
}
@Override
public String novo() {
this.usuario = new User();
return "";
}
@Override
public String enviar() {
boolean erro = false;
if (usuario.getCategoria().equals(null) || usuario.getEmail().isEmpty()
|| usuario.getLogin().isEmpty() || usuario.getSenha().isEmpty()) {
ctx.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR,
"Preencha todos os campos.", ""));
erro = true;
} else {
dao.gravar(usuario);
context.addMessage(null, new FacesMessage("Salvo com sussesso."));
novo();
}
return erro ? "" : "";
}
@Override
public String editar() {
dao.alterar(usuario);
return "";
}
@Override
public String deletar() {
dao.excluir(usuario);
ctx.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR,
"Usuário excluído!", ""));
return "";
}
@Override
public List<User> getLista() {
this.usuarios = dao.listar();
return usuarios;
}
}
Meu bean tá uma zona, mas não entendo o motivo do erro!
Será que alguém pode me ajudar?