Relaciones con atributos no Referenciados

Formularios new.xhtml, view.xtml

Al dar clic en Ganga ocultamos los otros autocomplete

Debe cumplir las condiciones:

  • No se pueden crear referencias a otros entitys, porque solo se podrá almacenar uno en un momento indicado. En el ejemplo el chofer esta asignado a una Bodega o una Ganga o una Tienda, no puede estar asignados a todas, por lo tanto no seria adecuado crear los @Referenced, ya que necesitariamos asignarle uno existente de cada entity que fuesemos a relacionar.

  • Podemos usar autocomplete con dropdown = true

  • Usamos un <b:flyOutMenu> para mostrar la lista correspondiente a cada entity que deseamos relacionar por los atributos.

  • Los autocomplete deben ser renderizados en base al atributo esbodega, esganga, estienda correspondiente.

  • En ese ejemplo se mostrara como relacionar Bodega o Ganga o Tienda, con Chofer mediante los atributos:

  • tipoalmacen que indicara si es bodega, tienda o ganga

  • idalmacen: almacena el valor del idbodega, idtienda o idganga.

  • En el controller creamos atributo para cada entity relacionado

  • Definimos atributos boolean

  • Crear el metodo public String onUbicacionChange(String almacen) para validar la seleccion del <b:flyOutMenu>

  • En el método save() validar si esbodega, esganga o estienda para asignar los valores correspondientes en los atributos: tipoalmacen, idalmacen.

  • Crear el mètodo public String nombreLugar(Chofer chofer) , para devolver el nombre correspondiente.

En el list

  • Invocar el metodo que devuelve el tipo y id correspondiente.

Entity

Datos

Se almacena en la siguiente estructura.

new.xhtml

view.xhtml

Controller

  • Definir atributos booleanos para cada entity

  • Definir objetos de cada entity

  • Inyectar los repository y services de los entitys de referencia

  • El metodo init() inicializar el false los atributos booleanos

  • Crear objetos nuevos

  • Validar en base al tipoalmacen para buscar el entity correspondiente

  • preprare() validar el tipoalmacen

  • save() validar tipoalmacen

  • edit() validar tipoalmacen

  • nombreLugar(Chofer chofer), devuelve el nombre del lugar

Nota:

Ver ChoferController.java

Last updated

Was this helpful?