Hallo wieder mal
Bin jetzt seit längerem an einem Problem, welches sich einfach nicht lösen lässt (nicht jedefalls von mir).
Der Versucht ist, Spring und Hibernate zu verwenden.
Transactions sollten ebenfalls drin liegen mit Declarations über Annotationen.
Nun, wenn ich denn die Services testen will bekomme ich folgenden Fehler:
Suche nun schon seit Stunden nach ner Lösung aber nix will klappen.. :8
Hat jemand n Plan?
Hier noch der Code resp. die Config :
Bin jetzt seit längerem an einem Problem, welches sich einfach nicht lösen lässt (nicht jedefalls von mir).
Der Versucht ist, Spring und Hibernate zu verwenden.
Transactions sollten ebenfalls drin liegen mit Declarations über Annotationen.
Nun, wenn ich denn die Services testen will bekomme ich folgenden Fehler:
Java:
Exception in thread "main" org.hibernate.HibernateException: No Hibernate Session bound to thread, and configuration does not allow creation of non-transactional one here
at org.springframework.orm.hibernate3.SpringSessionContext.currentSession(SpringSessionContext.java:63)
at org.hibernate.impl.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:622)
at ch.sisa.reportit.core.persistence.HibernateDataAccessService.getSession(HibernateDataAccessService.java:60)
at ch.sisa.reportit.core.persistence.HibernateDataAccessService.getReportitObjects(HibernateDataAccessService.java:107)
at ch.sisa.reportit.core.business.BusinessService.getBusinessObjects(BusinessService.java:111)
at ch.sisa.reportit.TestSpring.<init>(TestSpring.java:29)
at ch.sisa.reportit.TestSpring.main(TestSpring.java:20)
Suche nun schon seit Stunden nach ner Lösung aber nix will klappen.. :8
Hat jemand n Plan?
Hier noch der Code resp. die Config :
Java:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:oxm="http://www.springframework.org/schema/oxm"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/oxm [url]http://www.springframework.org/schema/oxm/spring-oxm-3.0.xsd[/url]
[url=http://www.springframework.org/schema/beans]Index of /schema/beans[/url] [url]http://www.springframework.org/schema/beans/spring-beans-3.0.xsd[/url]
[url=http://www.springframework.org/schema/tx]Index of /schema/tx[/url] [url]http://www.springframework.org/schema/tx/spring-tx-3.0.xsd[/url]
[url=http://www.springframework.org/schema/context]Index of /schema/context[/url] http://www.springframework.org/schema/context/spring-context.xsd">
<context:annotation-config />
<context:component-scan base-package="ch.test.inhere" />
<tx:annotation-driven transaction-manager="transactionManager" mode="aspectj"/>
<bean id="test-ds" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="net.sourceforge.jtds.jdbc.Driver" />
<property name="url"
value="jdbc:jtds:sqlserver://localhost/testdb;instance=SQLEXPRESS" />
<property name="username" value="xxx" />
<property name="password" value="xxx" />
</bean>
<bean id="test-sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="test-ds" />
<property name="packagesToScan" value="ch.test.inhere" />
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>
<prop key="hibernate.default_schema">dbo</prop>
<prop key="show_sql">true</prop>
</props>
</property>
</bean>
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="test-sessionFactory"/>
</bean>
</beans>
Java:
private SessionFactory sessionFactory = null;
public SessionFactory getSessionFactory() {
return sessionFactory;
}
@Required
@Resource(name="test-sessionFactory")
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
@Override
public Object getFromDBObject(Class<?> objectClass, Long id) {
Object objc = getSession().get(objectClass, id);
objc;
}
private Session getSession() {
// TODO Auto-generated method stub
return sessionFactory.getCurrentSession();
}