ERLEDIGT
NEIN
NEIN
ANTWORTEN
4
4
ZUGRIFFE
314
314
EMPFEHLEN
-
Hallo Jungs!
Ich habe nun ein Problem mit Hibernate, zumindest glaube ich, dass es daran liegt:
Es geht um die Geschwindigkeit (wohl eher Wartezeiten) bei jeder Aktion mit Hibernate... sei es saveOrUpdate(obj) oder delete(obj)!
Die Datenbank (HSQLDB) besteht nur aus einer einzigen Tabelle mit vier Spalten.
Mein DAO schaut so aus:
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
import java.util.Collection; import org.springframework.orm.hibernate3.HibernateTemplate; public class UserDAOImpl extends HibernateTemplate implements UserDAO { public void saveUser(User user) { this.saveOrUpdate(user); } public void deleteUser(User user) { this.delete(user); } public Collection<User> findAllUsers() { return this.loadAll(User.class); } }
Abhängigkeiten werden über die XML injiziert.
Code xml:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean id="UserDao" class="UserDAOImpl"> <property name="sessionFactory"> <ref bean="SessionFactory" /> </property> </bean> <bean id="SessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"> <ref bean="DataSource" /> </property> <property name="mappingResources"> <list> <value>User.hbm.xml</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.HSQLDialect</prop> <prop key="hibernate.show_sql">false</prop> </props> </property> </bean> <bean id="DataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName"> <value>org.hsqldb.jdbcDriver</value> </property> <property name="url"> <value>jdbc:hsqldb:file:database/user.db;shutdown=true</value> </property> <property name="username"> <value>sa</value> </property> <property name="password"> <value></value> </property> </bean> </beans>
Kann man auf anhieb schon sagen, woran das liegt? Falls nicht, bitte genau sagen, was für Informationen benötigt werden!
Gruß
Felix
-
17.09.09 06:47 #2
Was ist denn das Problem genau? Wie sieht dein CLientcode aus? Wie machst du Transaktionen? Was sagt das Log?
Gruß
OllieIn theory, there is no difference between theory and practice. In practice, there is!
www.olivergierke.de
-
17.09.09 08:50 #3
- Registriert seit
- Jun 2002
- Ort
- Saarbrücken (Saarland)
- Beiträge
- 9.886
- Blog-Einträge
- 29
Hallo,
weiterhin erweitert man für Hibernate basierte Daos in Spring Anwendungen besser die Klasse HibernateDaoSupport anstatt HibernateTemplate direkt, aber das nur mal so am Rande.
Gruß TomJava rocks!
How to become a good Java Programmer?
Does IT in Java and .Net
The only valid measurement of code quality: WTFs / minute
Blog
Xing
Twitter
-
Hi Ollie, Hi Tom!
@Ollie:
Grundsätzlich ist es ein Geschwindigkeitsproblem. Mein Controller (ActionListener auf einem Button) ruft die Methode aus dem DAO auf. Die Aktion (save, delete) braucht unheimlich lange, die View (Swing-GUI) friert ein und wird erst nach ein paar Sekunden wieder freigegeben.
Transaktionen habe ich garnicht eingebaut. Ich habe mich an einem HibernateTemplate-Tutorial von tutego.org orientiert.
Es werden keine Fehler o.ä. in der Log ausgegeben, die Aktion (save, delete) wird durchgeführt und die Daten stehen in der HSQLDB.
@Tom:
Die Änderung hat nichts gebracht, das Geschwindigkeitsproblem ist weiterhin vorhanden. Allerdings bedanke ich mich für den Hinweis
Ich hoffe, die Informationen bringen uns weiter...
Gruß
Felix
-
17.09.09 13:27 #5
- Registriert seit
- Jun 2002
- Ort
- Saarbrücken (Saarland)
- Beiträge
- 9.886
- Blog-Einträge
- 29
Hallo,
Solche Aktionen sollte man auch nicht im Event Dispatch Thread ausführen, da es dadurch zu den von dir erlebten blockierten UIs kommt. Am besten startest du aus dem Action Listener heraus die Aktion in einem neuen Thread und informierst die Oberfläche dann asynchron (EventQueue / SwingUtilitiwes.invokeLater(...) ) wenn der Vorgang abgeschlossen ist.Grundsätzlich ist es ein Geschwindigkeitsproblem. Mein Controller (ActionListener auf einem Button) ruft die Methode aus dem DAO auf. Die Aktion (save, delete) braucht unheimlich lange, die View (Swing-GUI) friert ein und wird erst nach ein paar Sekunden wieder freigegeben.
Gruß TomJava rocks!
How to become a good Java Programmer?
Does IT in Java and .Net
The only valid measurement of code quality: WTFs / minute
Blog
Xing
Twitter
Ähnliche Themen
-
Spring und Hibernate
Von y0dA im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 0Letzter Beitrag: 21.10.09, 14:30 -
Spring und Hibernate - Testen
Von y0dA im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 4Letzter Beitrag: 28.05.08, 19:10 -
JSF, Spring, Hibernate --> Struktur!
Von crossib im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 9Letzter Beitrag: 03.03.08, 07:15 -
DTO, Spring und Hibernate
Von DerGrinsemann im Forum JavaAntworten: 2Letzter Beitrag: 08.06.07, 11:41 -
update - Hibernate, Spring
Von DerGrinsemann im Forum JavaAntworten: 1Letzter Beitrag: 31.05.07, 18:32





Zitieren

Login





