Dostaje taki błąd:
HTTP Status 500 - Request processing failed; nested exception is org.hibernate.HibernateException: createCriteria is not valid without active transaction
Teraz tak beany:
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" >
...
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="packagesToScan" value="..." />
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</prop>
<prop key="hibernate.current_session_context_class">thread</prop>
<prop key="hibernate.show_sql">false</prop>
</props>
</property>
</bean>
<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<tx:annotation-driven transaction-manager="transactionManager" />
Metoda w service layer
@Transactional(rollbackFor = {Exception.class},propagation = Propagation.REQUIRES_NEW)
public List<PermissionDTO> findAll(){
List<Permission> entities = permissionRepository.findAll();
List<PermissionDTO> result = new ArrayList<>(entities.size());
entities.forEach(i->result.add(new PermissionDTO(i.getId(),i.getPermission())));
return result;
}
Czy jest ew. też możliwie że błąd jest spowodowany przez użycie:
<mvc:annotation-driven />