jugnicaragua / PICO

Sistema Contable para MicroEmpresas Nicaraguenses.
Other
7 stars 10 forks source link

[FEATURE] - Crear clase padre para entidades que utilizan identificacion #44

Open gacsnic opened 4 years ago

gacsnic commented 4 years ago

Describe la solución que deseas Crear una clase padre que proporcione el identificador de registro en cada entidad, aprovechando la característica de herencia de la POO.

Describe alternativas que hayas considerado Actualmente cada entidad posee su propia propiedad de identificador.

Contexto adicional

public abstract class Identificador<T>{
      protected T id;
...
getId()
setId() 
}

public class usuario extends Identificador<Integer>{
....
...
}
public class cuenta extends Identificador<Integer>{
....
...
}

Criterios de aceptación (hay que ver si alguna de ellas son necesarias)

gacsnic commented 4 years ago

Este feature, esta considerado tomando de referencias buenas practica planteadas en el webinar https://www.youtube.com/watch?v=WJhD_B3huEY&t=2201s , en los minutos 38:00 y 48:10. se implementa un id en dato Byte en la identidad tipo de cuenta ya que esa tabla no almacenara mas de 100 registros y con el tipo de datos Byte podemos llegar hasta el id 127, lo que nos ahoraria memoria al momento de requerir información de esa tabla. ver minutos 12:00y 28:00 del video anterior. para la identidad Tipo de Cuenta se cambiara la estrategia de autoincrementar a GenerationType.IDENTITY, para poder aprovechar el tipo de datos Byte.

berroteran commented 4 years ago

ok, tiene avances con esto?

gacsnic commented 4 years ago

ok, tiene avances con esto?

Falta definir la estrategia, recomiendo utilicemos de secuencia:

Para los catalogos(CuentaTipo,Cuenta,...) @SequenceGenerator(name = "sequence")

Para comprobante @SequenceGenerator(name="default_gen", sequenceName = "comprobante_sequence")

De optar por la estrategia AUTO:
Para los catalogos(CuentaTipo,Cuenta,...) @GeneratedValue(strategy = GenerationType.AUTO)

Para comprobante @GeneratedValue(strategy = GenerationType.AUTO , generator="default_gen")

Enlace de referencia https://thorben-janssen.com/jpa-generate-primary-keys/ https://thorben-janssen.com/hibernate-tips-use-custom-sequence/ https://docs.jboss.org/hibernate/annotations/3.5/reference/en/html_single/#entity-mapping-identifier https://vladmihalcea.com/why-should-not-use-the-auto-jpa-generationtype-with-mysql-and-hibernate/