Cuando tiene una entidad, como UserEntity, ¿quién es la propiedad id
se deriva de su clave principal en el db? ¿Debería proporcionar un método setter como setId()
?ID de la entidad como argumento constructor o mediante un método setter?
Algunos argumentos en contra:
- abre la puerta a posibles sobrescribe accidentales de otras UserEntities en el PP
- dos (o más) podrían existir UserEntities en cualquier momento con los mismos
id
pero diferentes propiedades . (Si me sacó 3 usuarios diferentes de la db y establecer sus valoresid
a la misma)
Algunos argumentos para:
- si no tiene que crear una instancia del UserEntity con un
id
en el constructor (dado que tiene un método setter), puedo usar los métodos del objeto UserEntity con valores de usuario temporales/falsos/nuevos ... sin tener que insistir primero.
Proporcionar un regulador (y no fuerzan una id
en el constructor), o forzar una id
en el constructor, y retire la incubadora?
¡Gracias por la respuesta! Cuando la capa de persistencia establece la identidad, ¿debería ser a través del constructor o mediante un setter? ¿Puede la entidad ser instanciada sin la identidad? – johnnietheblack
Debe ser a través de un colocador o mediante reflexión, dependiendo del idioma. Y debería ser posible crear instancias sin una identidad, aunque uno debe ser consciente de que cuando una entidad transitoria se vuelve persistente, sus características de igualdad pueden cambiar mientras el objeto permanece en la memoria si, por ejemplo, el código hash se deriva de la identidad. – eulerfx