-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 11 posts ] 
Author Message
 Post subject: hibernate bekommt datenänderungen nicht mit
PostPosted: Wed Oct 18, 2006 7:41 pm 
Beginner
Beginner

Joined: Fri Sep 01, 2006 3:35 pm
Posts: 21
ich lasse mir mit einem statement A (native sql) die summe über einer spalte berechnen. das ergebnis stimmt. dann ändere ich mit einem sql-tool den inhalt der tabelle, füge zeilen hinzu, ändere werte, etc.

lasse ich A jetzt von einem zweiten tool aus laufen, bekomme ich das korrekte, aktuelle ergebnis. lasse ich dannach A innerhalb von hibernate laufen, bekomme ich das *alte* ergebnis. die ganze tabelle existiert dort nur im alten zustand, was ich mir absolut nicht erklären kann. starte ich hibernate neu, funktioniert alles. ein cache kann es eigentlich nicht sein, da sämtliche statements, die die alte tabelle betreffen falsch sind und ich alle caches deaktiviert habe.

wie kann das sein?


Top
 Profile  
 
 Post subject:
PostPosted: Thu Oct 19, 2006 5:36 pm 
Expert
Expert

Joined: Tue Nov 23, 2004 7:00 pm
Posts: 570
Location: mostly Frankfurt Germany
Ich denke schon, dass es ein Cache ist und wenn es nur die Session selber ist.
Schließt Du die Session oder nutzt Du die alte weiter?
Wie hast Du den Standardcache deaktiviert?

_________________
Best Regards
Sebastian
---
Training for Hibernate and Java Persistence
Tutorials for Hibernate, Spring, EJB, JSF...
eBook: Hibernate 3 - DeveloperGuide
Paper book: Hibernate 3 - Das Praxisbuch
http://www.laliluna.de


Top
 Profile  
 
 Post subject:
PostPosted: Fri Oct 20, 2006 4:55 am 
Beginner
Beginner

Joined: Fri Sep 01, 2006 3:35 pm
Posts: 21
es kann unmöglich der cache sein, denn:
1. hibernate sagt es beim start: "query cache: disabled" "second level cache: disabled"
2. hibernate zeigt das sql-statement an. passiert nicht bei cache-zugriffen
3. ändere ich einen wert in einer ANDEREN tabelle, bekommt hibernate das mit. das problem besteht, wie sich später rausgestellt hat, nur bei einer bestimmten tabelle. in dieser werden, wenn ich den inhalt in objekte lade, auch alle integer als "null" geladen, obwohl eindeutig zahlen drinstehen - mit native sql bekomme ich die werte korrekt. auch das problem tritt ausschließlich mit dieser einen tabelle auf.
4. ich lade keine objekte, das ganze ist einfach "select sum(a) from b;". das wird nicht gecached.
5. auch andere statements auf der tabelle liefern mit veraltete daten - selbst wenn sum(a) gecachted wäre, müssten neue statements, die ich nie zuvor ausgeführt habe, aktuelle daten liefern.
6. es passiert auch mit neuen sessions.

mache ich eine neue connection auf, ist das ergebnis das erste mal wieder richtig.


Top
 Profile  
 
 Post subject:
PostPosted: Fri Oct 20, 2006 5:29 am 
Expert
Expert

Joined: Tue Nov 23, 2004 7:00 pm
Posts: 570
Location: mostly Frankfurt Germany
Kannst Du mal das Mapping und den Testcase für das Statement posten.

Öffnest und schließt Du die Transaction, wenn Du die Daten abfragst?

_________________
Best Regards
Sebastian
---
Training for Hibernate and Java Persistence
Tutorials for Hibernate, Spring, EJB, JSF...
eBook: Hibernate 3 - DeveloperGuide
Paper book: Hibernate 3 - Das Praxisbuch
http://www.laliluna.de


Top
 Profile  
 
 Post subject:
PostPosted: Fri Oct 20, 2006 5:41 am 
Beginner
Beginner

Joined: Fri Sep 01, 2006 3:35 pm
Posts: 21
nein, ich mache das ohne transaktion. ich will ja nur daten lesen, keine schreiben.

am ende mach ich session.close()
code posten kann ich erst heute abend.


Top
 Profile  
 
 Post subject:
PostPosted: Fri Oct 20, 2006 5:46 am 
Expert
Expert

Joined: Tue Nov 23, 2004 7:00 pm
Posts: 570
Location: mostly Frankfurt Germany
Bau die Transaction mal bitte ein.

_________________
Best Regards
Sebastian
---
Training for Hibernate and Java Persistence
Tutorials for Hibernate, Spring, EJB, JSF...
eBook: Hibernate 3 - DeveloperGuide
Paper book: Hibernate 3 - Das Praxisbuch
http://www.laliluna.de


Top
 Profile  
 
 Post subject:
PostPosted: Fri Oct 20, 2006 1:13 pm 
Beginner
Beginner

Joined: Fri Sep 01, 2006 3:35 pm
Posts: 21
was genau würde die tun?


Top
 Profile  
 
 Post subject:
PostPosted: Fri Oct 20, 2006 2:38 pm 
Hibernate Team
Hibernate Team

Joined: Mon Aug 25, 2003 9:11 pm
Posts: 4592
Location: Switzerland
Warum glaubst Du dass man fuer Daten Lesen keine Transaktion braucht? In welcher Dokumentation oder Buch steht das?


Top
 Profile  
 
 Post subject:
PostPosted: Fri Oct 20, 2006 2:50 pm 
Beginner
Beginner

Joined: Fri Sep 01, 2006 3:35 pm
Posts: 21
weil es bis jetzt immer funktioniert hat. ich wüsste auch nicht, welchen sinn eine transaktion beim lesen haben sollte, wenn man immer die aktuellsten daten will.


Top
 Profile  
 
 Post subject:
PostPosted: Fri Oct 20, 2006 11:37 pm 
Hibernate Team
Hibernate Team

Joined: Mon Aug 25, 2003 9:11 pm
Posts: 4592
Location: Switzerland
Falsch ist es trotzdem. Du willst unbedingt nochmal mehr ueber Transaktionen rausfinden. Wenn Du wirklich nach Antworten auf Deine zahlreichen Postings suchst, musst Du auch Code posten.


Top
 Profile  
 
 Post subject:
PostPosted: Sat Oct 21, 2006 6:46 am 
Beginner
Beginner

Joined: Fri Sep 01, 2006 3:35 pm
Posts: 21
nach dem lesen von http://www.hibernate.org/hib_docs/v3/re ... tions.html
weiss ich immernoch nicht, wieso ich unbedingt zum lesen transaktionen brauchen sollte. da steht nur "Always use clear transaction boundaries, even for read-only operations.", aber nicht wieso. da steht auch nicht, was passiert, wenn ich es nicht tue. geholfen hat es aber nicht, eine transaktion aufzumachen.
ich hab mich jetzt um das problem herumgemogelt, indem ich eine parallele verbindung direkt zur datenbank aufgebaut habe.

der alte code war einfach sowas:

Code:
            int maxBesucher =
                (Integer) session.createSQLQuery("select sum(irgendwas) from irgendwo")
                    .uniqueResult();




[/code]


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 11 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.