Designfrage zu Objekten/SQL

WeirdAl

Mitglied
Hi,
ich frage mich gerade welche Art der Programmierung "besser" ist.
Ich arbeite gerade an einem Webprojekt und habe ein Userobjekt (Sessionscope). Der User besitzt Daten, die ich jetzt eigentlich in das, nach dem Login entstandene, Userobjekt einlesen wollte. Nun habe ich mich gefragt, ob ich nicht lieber in diesem Userobjekt nur die UserID hinterlegen sollte und jedesmal, wenn der Nutzer seine eigenen Daten aufrufen möchte, Kontakt zur SQL DB herstelle und die Daten direkt ausgebe ohne sie in das UserObjekt zu speichern.

Einerseits benötige ich weniger Heap-Speicher, da mein Userobjekt deutlich schlanker ist, jedoch habe ich das Risiko das der Connect zur DB nicht klappt. Wenn die Daten nicht in dem Objekt ablege, muss ich bei Änderungen auch nicht daran denken dem UserObjekt bescheid zu geben, das sich Werte geändert haben.

Was meint ihr bzw. wie würdet ihr dies realisieren?
 
Nimm doch einfach Hibernate für die Kommunikation mit der Datenbank. Dort kannst du ganz einfach einstellen ob die Daten beim Instanziieren aus der Datenbank gelesen werden sollen oder erst wenn die Methode aufgerufen wird zu der die Daten gehören (getter z.B.). Da brauchst du dann nur eine Property setzen wie das gehandelt werden soll und kannst dann mal testen wie es schöner ist.
 
Ich denke dass kommt darauf an wie gross so ein Userobjekt ist, wie viele User gleichzeitig darauf sind (wie viele Userobjekte also gleichzeitig im Speicher liegen) und wie viel mal der User/das System darauf Zugreifft.
 
Hibernate wollte ich zwecks Lerneffekt erst benutzen, sobald ich die sql querries fertig habe. Jedoch scheint es so, dass jetzt genau der Moment gekommen ist dies einzusetzen :)

Ich denke das es ca. 100-1000 User werden könnten. Jedoch sicher werden nie mehr als 100-200 gleichzeitig eine Session aufhaben (eingeloggt sein).
 
Zurück