# Datenbankzugriff (Probleme mit Cache?!)



## sicLotus (27. Jun 2011)

Hallo, ich habe folgendes Problem:

Ich habe eine SQL-Datenbank mit einer Tabelle für User.
Über meine Webanwendung habe ich einen User registriert. Hat alles funktioniert. Am Anfang hat er die GruppenID 1. Jetzt habe ich in phpmyadmin die GruppenID geändert. Nun wollte ich in meiner Webanwendung mich einloggen und mir die GruppenID anzeigen... doch komischerweise zeigt er mir immernoch die 1 an und nicht die 2, obwohl der Wert in der Datenbank stimmt! Es kommt mir so vor, als ob er überhaupt nicht auf die Datenbank zugreift, sondern auf bestimmte Elemente in einem Cache oder so.. kann sowas sein?

ps.: erst nachdem ich den glassfish server neu gestartet habe, hat es funktioniert.. :/


----------



## Gelöschtes Mitglied 5909 (27. Jun 2011)

Ja das kann sein, hört sich nach dem klassischen ORM Problem an.


----------



## sicLotus (27. Jun 2011)

raiL hat gesagt.:


> Ja das kann sein, hört sich nach dem klassischen ORM Problem an.



Okay, erstmal schonmal danke für die Antwort. Allerdings hatte ich gehofft das du mir auch sagen kannst wie ich das Problem umgehe, oder wodurch genau das überhaupt erst auftritt.


----------



## maki (27. Jun 2011)

Da du gar nix dazu sagst wie die WebApp auf die DB zugreift könnte man nur raten...


----------



## sicLotus (27. Jun 2011)

```
@PersistenceContext
	EntityManager emanager;
public User findById(int uid){
		User u = new User();
		u = emanager.find(User.class, uid);
		return u;
	}
```


----------



## maki (27. Jun 2011)

Du meinst "JPA"

ORM im Regelfall brauchen exklusiven Zugriff auf die DB, h.d. dass du nix direkt in der DB ändern darfst während die Anwendung läuft.

Das [c]new User()[/c] ist ja wohl komplett überflüssig ??


----------



## sicLotus (27. Jun 2011)

maki hat gesagt.:


> Du meinst "JPA"
> 
> ORM im Regelfall brauchen exklusiven Zugriff auf die DB, h.d. dass du nix direkt in der DB ändern darfst während die Anwendung läuft.
> 
> Das [c]new User()[/c] ist ja wohl komplett überflüssig ??



Okay, das heißt also, ich kann daran nichts ändern und brauch mich darum auch nicht zu kümmern. Danke für eure Hilfe.

ps: Ja, es ist überflüssig. Ich leg irgendwie immer sicherheitshalber ne Instanz an.. irgendwie kommt sonst ständig irgendwo immer nen NullPointer..


----------



## maki (27. Jun 2011)

> ps: Ja, es ist überflüssig. Ich leg irgendwie immer sicherheitshalber ne Instanz an.. irgendwie kommt sonst ständig irgendwo immer nen NullPointer..


???

NPEs zeigen Programmierfehler auf, solltest nicht die Auswirkung sondern die ursache bekämpfen, vor allem aber aufhören sinnlos Objekte zu erzeugen weil du den Code nicht korrigieren willst.


----------



## FArt (28. Jun 2011)

sicLotus hat gesagt.:


> ps: Ja, es ist überflüssig. Ich leg irgendwie immer sicherheitshalber ne Instanz an.. irgendwie kommt sonst ständig irgendwo immer nen NullPointer..




ROFL... 

Vielen Dank für diese Stilblüte! Ich werde sie wohl in den nächsten Jahrzehnten desöfteren zitieren müssen, denn das ist ein garantierter Lacher!


----------

