Secondo dddsample-core possiamo avere un modello per DDD e ORM. E secondo me vale la pena accettare le conseguenze 1 come questo uno (il costruttore predefinito è richiesto da ORM) e in cambio abbiamo meno duplicazioni .
Questo potrebbe non essere correlato alla domanda, ma ritengo che sia un buon posto per parlarne. I modelli di persistenza sono modelli astratti come Entità e di solito non li distinguono da ValueObjects . Ma nei modelli DDD dobbiamo vedere chiaramente se un modello è un ValueObject
o Entity
? Quindi la tua 'classe entità Spring JPA' deve implementare l'interfaccia ValueObject
o l'interfaccia Entity
per mostrare questa diff. In altre parole, la tua "entità Spring JPA calss" potrebbe essere un ValueObject! e il tuo design dovrebbe mostrarlo chiaramente.
Note
1: dipende dalla tecnologia e dalle strutture scelte, le conseguenze di tale decisione potrebbero essere diverse, per favore prendilo in considerazione anche.