Ero solito fare lo sviluppo di Java e con JPA, non devo davvero preoccuparmi della sincronicità tra una tabella e le liste che possiede. Per coloro che non capiscono cosa intendo, ecco un esempio.
Supponiamo di avere una tabella Persona e una tabella indirizzi. Una persona può avere molti indirizzi. Quindi quando aggiorni gli indirizzi della persona e stai usando JPA. Una volta che persisti, la magia accade dietro e tutto viene aggiornato magicamente (gli indirizzi che dovrebbero essere cancellati vengono cancellati e quelli che sono stati aggiornati sono stati aggiornati).
Avanzando rapidamente, sto facendo lo sviluppo di NodeJS e noto che, sebbene stiamo usando flex e alcune librerie interne per aiutare a costruire le query SQL, non posso fare quanto descritto sopra. Attualmente, ci sono 2 modi in cui posso pensare di farlo.
-
Posso cancellare tutti gli indirizzi che appartengono alla persona e ricrearli. Tuttavia, facendo ciò significa perdere tutti i metadati che potrebbero essere utili per la registrazione.
-
Ho bisogno di eseguire query aggiuntive sul database per recuperare l'elenco precedente di indirizzi e quindi eseguire un ciclo for per verificare quale address_id deve essere eliminato, aggiornato o creato. Questo non è scalabile se l'elenco diventa troppo grande.
Quindi, a parte i 2 suggerimenti sopra, avete qualche metodo valido? Non riesco a trovare nessun buon adattatore Persistenza per MySQL e NodeJS fino ad ora che non ha troppe dipendenze (npm incubo proprio lì) quindi sarebbe bene se la soluzione potesse essere implementata senza una libreria / framework di terze parti.