style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

ayuda expresion boolean

Hola compañeros, os describo mi problema para ver si me podais dar alguna idea:

TENGO UN FORMULARIO CON DIVERSOS CAMPOS,como

nombre:
boletin: valores en una lista desplejable true false y Mostrar todos
fecha

y un boton buscar, el cual me muestra los resultados obtenidos de dicha busqueda en un datatable

el problema que tengo es en el campo mostrar todos ya que solo me muestra los false.Utilizo primefaces

 <h:selectOneMenu id="boletin" value="#{bean.boletin}">
                                        <f:converter converterId="javax.faces.Boolean" />
                                        <f:selectItem itemLabel="Mostrar todos" itemValue="" />
                                        <f:selectItem itemValue="true" />
                                        <f:selectItem itemValue="false" />
                                    </h:selectOneMenu>

Mi consulta es en jpa:

"select b from bean b where b.boletin =:boletin...."

he intentado poner y tampoco

 <f:selectItem itemLabel="Mostrar todos" itemValue=" false or true" />

¿alguna idea?

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Criteria

Asumiendo que estás utilizando JPA (Hibernate), tal vez quieras usar Criteria. Aquí puedes encontrar algunos ejemplos de uso.

Hola, de nuevo Estoy mirando

Hola, de nuevo

Estoy mirando en la documentacion de criteria , pero sigo sin saber como mostrar "mostrar todos" de boletin.

Como dije antes yo tengo un formulario que uno de los campos es boletin que puede tomar los valores :

-Mostrar todos ---> Me muestra todos los usuarios que sean boletin =true y boletin=false

-True--> Me muestra todos losusuarios que sean boletin =true

-False--> Me muestra todos los usuarios s que sean boletin =false

Mi primer consulta la hice con @namedquery de jpa-->

 "select b from bean b where b.boletin =:boletin...."

Despues tengo un metodo que se le pasa de parametros los valores introducidosdel formulario, esto depende lo que ponga el invitado de la web
y con los q.parameter("boletin",formulario.boletin) voy construyendo la consulta anterior.

Me muestra bien para true y false, pero no para mostrar todos.

La tabla usuario esta guardada en la base de datos y el campo boletin puede tomar true o false y es un tyning(1), aunque en jpa es un boolean.

He probado en mysql y me da la solucion con:

select * fom usuario where boletin= false or true

Intento poner:

<f:selectItem itemLabel="Mostrar todos" itemValue=false or true />

ESto da un error en la sintaxis dela linea de itemValue

Y para que no de error tengo que poner entre comillas itemValue="false or true", pero ya no me muestra bien el resultado.

ESPERO VUESTRA COLABORACION, soy nueva en esto.saludo a todos

Imagen de WinDoctor

No conozco primefaces, pero y

No conozco primefaces, pero y si intentas usar

select * fom usuario where boletin in :boletin

donde desde luedo que :boletin será un List que deberá contener los valores 0 y 1 que son los que mysql reconoce para el tyning.

Desde el <selectItem> supongo que pondrías como un value=2 y desde Java detectar que si viene un "2" mande un List con los valores 0 y 1.

Imagen de adrianaaae

Mi respuesta es

Bueno así a simple vista podrías validar en un método si te mandan un registro (si es false o true ) o te mandan los dos (si es true y false).
podrías primero validar cuantos parámetros recibes o algo así:

public  List<Usuario> getUsers(boolean sonTodos,boolean boletin){
if(sonTodos){
  return this.getAllUsers();
}else{
  return this.getUsersByBoletin(boolean boletin);
}
}

En el primer caso se me ocurre algo así:

public List<Usuario> getUsersByBoletin(boolean boletin){
List<Usuario> usuarios=new ArrayList<Usuario>();
Criteria cri =Session().createCriteria(Usuario.class);
        cri.add(Restrictions.eq("boletin", boletin));        
        usuarios = (Usuario) cri.list();
        return usuarios;
}

Para el segundo caso algo así:

public List<Usuario> getAllUsers(){
List<Usuario> usuarios=new ArrayList<Usuario>();
Criteria cri = Session().createCriteria(Usuario.class);        
        usuarios = (Usuario) cri.list();
        return usuarios;
}

Espero te sirva... Yo haría algo así

Imagen de ezamudio

false or true?

Decir columna=false or true no tiene sentido, es mejor no poner ese filtro y ya.

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">