[java/hibernate] openSession en getCurrentSession verschil

Pagina: 1
Acties:

  • Salandur
  • Registratie: Mei 2003
  • Laatst online: 14-02 17:22

Salandur

Software Engineer

Topicstarter
We zijn hier op mijn werk overgestapt naar hibernate voor de data opslag en dit is mijn eerste project hiermee.

Als ik lokaal test (in Eclipse of Maven) zie ik foutmeldingen voor bij komen terwijl het op onze server (BEA Weblogic 8.1) geen fouten zie. Als ik dan de code aanpas werkt het weer niet op de server :(
Lokaal gebruik ik de volgende configuratie:
code:
1
2
3
4
5
6
7
hibernate.connection.driver_class=org.hsqldb.jdbcDriver
hibernate.connection.url=jdbc:hsqldb:mem:testdb
hibernate.connection.username=sa
hibernate.dialect=org.hibernate.dialect.HSQLDialect
hibernate.hbm2ddl.auto=create
hibernate.current_session_context_class=thread
hibernate.cache.provider_class=org.hibernate.cache.NoCacheProvider

Op de server staat de volgende configuratie:
code:
1
2
3
4
hibernate.connection.datasource=jdbc/productiedatasource
hibernate.transaction.factory_class=org.hibernate.transaction.JTATransactionFactory
hibernate.transaction.manager_lookup_class=org.hibernate.transaction.WeblogicTransactionManagerLookup
hibernate.dialect=org.hibernate.dialect.Oracle9Dialect


Deze code gebruik ik om een session te verkrijgen en een transaction te starten:
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
try {
  session = BaseDao.getSessionFactory().openSession();
  transaction = session.getTransaction();
  transaction.setTimeout(3600);
  transaction.begin();

  ... doe werk met getCurrentSession() ..

  transaction.commit();
}
catch (Fouten) {transaction.rollback()}
finally {
  session.close();
}


Als ik dan in een subclasse van BaseDao getSessionFactory().getCurrentSession().saveOrUpdate() doe krijg ik lokaal de volgende foutmelding: saveOrUpdate is not valid without active transaction
Hierdoor falen mijn JUnit testen...

Wie kan mij uit de brand helpen met een goede configuratie?

Assumptions are the mother of all fuck ups | iRacing Profiel


  • Cuball
  • Registratie: Mei 2002
  • Laatst online: 03-02 20:14
ben je zeker dat je lokaal ook een JTATransactionManager kan gebruiken ? Lokaal heb je dus ook een managed omgeving (je gebruikt dus ook Weblogic of andere AS) ?

"Live as if you were to die tomorrow. Learn as if you were to live forever"


  • Salandur
  • Registratie: Mei 2003
  • Laatst online: 14-02 17:22

Salandur

Software Engineer

Topicstarter
lokaal gebruik ik eclipse of maven om mijn testen in te draaien. als ik lokaal op een server zou deployen dan zou ik waarschijnlijk hetzelfde zien. ik zal de startpost even aanpassen dat het verschil wat duidelijker is.

Assumptions are the mother of all fuck ups | iRacing Profiel


  • r5d
  • Registratie: Februari 2002
  • Niet online

r5d

Read more, write less...

Wat me opvalt, je wilt communiceren met een Oracle9 database server maar je gebruikt een HypersonicSQL driver. Dus update je eigen configuratie om ook Oracle JDBC drivers te gebruiken.

org.hibernate.dialect.Oracle9Dialect ipv org.hibernate.dialect.HSQLDialect

[ Voor 31% gewijzigd door r5d op 06-09-2006 10:45 ]

Later betaal je meer, maar dan heb je wel een gratis datalimiet....


  • Salandur
  • Registratie: Mei 2003
  • Laatst online: 14-02 17:22

Salandur

Software Engineer

Topicstarter
in de managed omgeven gebruiken we inderdaad Oracle. Voor lokaal testen gebruik ik HSQLDB. Zo staat dit ook in de configuratie

Assumptions are the mother of all fuck ups | iRacing Profiel