Nombres de las entidades

Si se siguen algunas convenciones en cuanto a los nombres usados en algunas clases, nos podemos ahorrar de escribir codigo repetitivo y un poco de configuracion. Veamos primero las convenciones a usar y despues para que sirven.

Siendo X el nombre de una clase que usaremos como entidad:

  • Interfaz del dao: XDao
  • Clase del dao: XDaoImpl
  • Propiedad en el service con la referencia al dao: xDao (en el caso de que X sean varias palabras, se usa camel camel case con la primer letra en minuscula).
  • Metodos en el facade:
    • Creado/actualizacion: saveX(<X> obj)
    • Borrado: removeX(Set<<X> objs)

Las ventajas de hacer esto son varias:

  • Menos configuracion en Spring, si estamos usando el bean post-processor DaoAutoWirer (se usa en la configuracion por default). Este bean hace que con solo tener la entidad mapeada en Hibernate, se crea una instancia del dao y se setea en el service.
  • Se pueden usar las paginas de abms genericos, ya que estas usan refleccion y estas convenciones.
  • Implementacion automatica en el facade para las operaciones de borrado y creacion/actualizacion, si estamos usando FacadeDaoEnhancer (se usa en la configuracion por default). Leer la documentacion de FacadeDaoEnhancer para ver como y que operaciones se usan.

Fechas

Para manipular fechas, ver DateUtils.

Tips para la generacion de reportes

Estos tips son para JasperReports.

  • Acordarse de setear el atributo "whenNoDataType" en "AllSectionsNoDetail". Esto es para que cuando se genera un reporte y no hay datos a mostrar, genere una pagina del reporte pero sin datos. Este atributo es del tag jasperReport en el xml o viendo las propiedades del reporte en algun editor.