Estou quebrando a cabeça pra resolver isso.
Eu tenho minha classe de mapeamento Hibernate, que funciona corretamente. Eu uso um bean controller e um helper para fornecer dados para uma lista, que monto na minha página em JSF.
Na tabela em questão, existe um campo isAdministrador tipo boolean, que na listagem aparece sempre como true ou false. Eu quero que este campo apareça na minha lista como Sim ou Não.
entidade hibernate:
@Entity
@Table(name="usuario"
,catalog="intranetditlanta"
)
public class Usuario implements java.io.Serializable {
private Integer usuarioId;
private String nome;
private String usuario;
private String senha;
private boolean isAdministrador;
private Date horasSemana;
private Date horasMes;
//private Set horariousuarios = new HashSet(0);
//private Set pontos = new HashSet(0);
//private Set folgas = new HashSet(0);
public Usuario() {
}
public Usuario(String nome, String usuario, String senha, boolean isAdministrador) {
this.nome = nome;
this.usuario = usuario;
this.senha = senha;
this.isAdministrador = isAdministrador;
}
public Usuario(String nome, String usuario, String senha, boolean isAdministrador, Date horasSemana, Date horasMes) {
this.nome = nome;
this.usuario = usuario;
this.senha = senha;
this.isAdministrador = isAdministrador;
this.horasSemana = horasSemana;
this.horasMes = horasMes;
//this.horariousuarios = horariousuarios;
//this.pontos = pontos;
//this.folgas = folgas;
}
@Id @GeneratedValue(strategy=IDENTITY)
@Column(name="usuarioId", unique=true, nullable=false)
public Integer getUsuarioId() {
return this.usuarioId;
}
public void setUsuarioId(Integer usuarioId) {
this.usuarioId = usuarioId;
}
@Column(name="nome", nullable=false, length=45)
public String getNome() {
return this.nome;
}
public void setNome(String nome) {
this.nome = nome;
}
@Column(name="usuario", nullable=false, length=16)
public String getUsuario() {
return this.usuario;
}
public void setUsuario(String usuario) {
this.usuario = usuario;
}
@Column(name="senha", nullable=false, length=32)
public String getSenha() {
return this.senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
@Column(name="isAdministrador", nullable=false)
public boolean isIsAdministrador() {
return this.isAdministrador;
}
public void setIsAdministrador(boolean isAdministrador) {
this.isAdministrador = isAdministrador;
}
@Temporal(TemporalType.TIME)
@Column(name="horasSemana", length=8)
public Date getHorasSemana() {
return this.horasSemana;
}
public void setHorasSemana(Date horasSemana) {
this.horasSemana = horasSemana;
}
@Temporal(TemporalType.TIME)
@Column(name="horasMes", length=8)
public Date getHorasMes() {
return this.horasMes;
}
public void setHorasMes(Date horasMes) {
this.horasMes = horasMes;
}
usuario helper
public class UsuarioHelper {
Session session = null;
public UsuarioHelper() {
this.session = HibernateUtil.getSessionFactory().getCurrentSession();
}
public List getUsuarioNomes(int pageNumber, int pageSize) {
List<Usuario> usuarioList = null;
try {
org.hibernate.Transaction tx = session.beginTransaction();
//Query q = session.createQuery("from Usuario as usuario where usuario.usuarioId between '" + startID + "' and '" + endID + "'");
Query q = session.createQuery("from Usuario");
q.setFirstResult((pageNumber - 1) * pageSize);
q.setMaxResults(pageSize);
usuarioList = (List<Usuario>) q.list();
} catch (Exception e) {
e.printStackTrace();
}
return usuarioList;
}
public Usuario getUsuarioByID(int usuarioId) {
Usuario usuario = null;
try {
org.hibernate.Transaction tx = session.beginTransaction();
Query q = session.createQuery("from Usuario as usuario where usuario.usuarioId=" + usuarioId);
usuario = (Usuario) q.uniqueResult();
} catch (Exception e) {
e.printStackTrace();
}
return usuario;
}
}
usuarioController
@ManagedBean
@SessionScoped
public class UsuarioController {
int pageNumber;
DataModel usuarioNomes;
UsuarioHelper helper;
private int recordCount = 6;
private int pageSize = 5;
private Usuario current;
private int selectedItemIndex;
public UsuarioController() {
helper = new UsuarioHelper();
pageNumber = 1;
}
public UsuarioController(int pageNumber) {
helper = new UsuarioHelper();
this.pageNumber = pageNumber;
}
public Usuario getSelected() {
if (current == null) {
current = new Usuario();
selectedItemIndex = -1;
}
return current;
}
public DataModel getUsuarioNomes() {
if (usuarioNomes == null) {
usuarioNomes = new ListDataModel(helper.getUsuarioNomes(pageNumber, pageSize));
}
return usuarioNomes;
}
void recreateModel() {
usuarioNomes = null;
}
public boolean isHasNextPage() {
if (pageNumber * pageSize < recordCount) {
return true;
}
return false;
}
public boolean isHasPreviousPage() {
if (pageNumber > 1) {
return true;
}
return false;
}
public String next() {
pageNumber += 1;
recreateModel();
return "index";
}
public String previous() {
pageNumber -= 1;
recreateModel();
return "index";
}
public int getPageSize() {
return pageSize;
}
public int getPageNumber(){
return pageNumber;
}
public String prepareView() {
current = (Usuario) getUsuarioNomes().getRowData();
return "browse";
}
public String prepareList() {
recreateModel();
return "index";
}
jsf que faz a listagem dos items
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core">
<ui:composition template="./template.xhtml">
<ui:define name="body">
<h:form>
<h:commandLink action="#{usuarioController.previous}" value="Previous #{usuarioController.pageSize}" rendered="#{usuarioController.hasPreviousPage}"/>
<h:commandLink action="#{usuarioController.next}" value="Next #{usuarioController.pageSize}" rendered="#{usuarioController.hasNextPage}"/>
<br/>
<h:outputText value="#{usuarioController.pageNumber}"/>
<h:dataTable value="#{usuarioController.usuarioNomes}" var="item" border="0" cellpadding="2" cellspacing="0" rowClasses="jsfcrud_odd_row,jsfcrud_even_row" rules="all" style="border:solid 1px">
<h:column>
<f:facet name="header">
<h:outputText value="Nome"/>
</f:facet>
<h:outputText value="#{item.nome}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Usuário"/>
</f:facet>
<h:outputText value="#{item.usuario}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Administrador"/>
</f:facet>
<h:outputText value="#{item.isAdministrador}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value=" "/>
</f:facet>
<h:commandLink action="#{usuarioController.prepareView}" value="View"/>
</h:column>
</h:dataTable>
<br/>
</h:form>
</ui:define>
</ui:composition>
</html>

