migliorabile ha scritto:
Il prof ha ragione/torto (ma bisogna vedere il CONTESTO in cui ha detto quello che ha detto !!!):
1) ogni oggetto java e' univocamente identificato dal fatto di avere un indirizzo di memoria univoco (perche' anche su tu l'indirizzo non lo vedi, comunque sempre un PC con della memoria che stai utilizzando)
MA
2) due oggetti Java, benche distinti, possono rappresentare LO STESSO OGGETTO. In questo caso l'uso di un ID di qualche genere e' molto comodo/fondamentale
Quando accedi ai record in un DB, ti devi portare dietro ANCHE l'id del record, perche' l'ID del record e' il suo ""indirizzo in memoria"" (nel DBMS, OVVIAMENTE!!!)
E tale ID e' NECECSSARIO quando devi fare un'update, altrimenti quale record aggiorni/cancelli?
Hai ragione e concordo con quanto hai detto.
Il prof però ritiene che portare dietro questi codici appunto snaturi quella che è la definizione di classe Java, che deve rappresentare un oggetto del mondo reale. Se ho la classe "tavolo" ad esempio non vuole vedere "int codiceTavolo" perchè nella realtà è una cosa insolita.
Non do torto al prof, ci mancherebbe, e infatti se utilizzassi solo l'appicativo Java senza database non mi sognerei di mettere "codiceTavolo", ma con un databse srutturato in questo modo che soluzioni ho? Avevo anche pensato di ricavare questi codici nelle classi dao sfruttanto l' insieme di attributi che già ho, ma a quel punto cosa ho fatto a fare le chiavi surrogate?