Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support Hibernate StatelessSession [SPR-2495] #7184

Closed
spring-projects-issues opened this issue Aug 27, 2006 · 8 comments
Closed

Support Hibernate StatelessSession [SPR-2495] #7184

spring-projects-issues opened this issue Aug 27, 2006 · 8 comments
Labels
has: votes-jira Issues migrated from JIRA with more than 10 votes at the time of import in: data Issues in data modules (jdbc, orm, oxm, tx) status: declined A suggestion or change that we don't feel we should currently apply type: enhancement A general enhancement

Comments

@spring-projects-issues
Copy link
Collaborator

spring-projects-issues commented Aug 27, 2006

WDA opened SPR-2495 and commented

Hello,

since Hibernate 3.1 has a 'StatelessSession' class to use for batch jobs (bulk inserts / updates), it wourld be nice, if a helper class like 'HibernateDaoSupport' could support that new feature.

best regards,
Wolf-Dieter Angerer


Affects: 1.2.8, 2.0 RC3

Attachments:

Issue Links:

19 votes, 20 watchers

@spring-projects-issues
Copy link
Collaborator Author

Juergen Hoeller commented

I'll add documentation on how to use Hibernate's StatelessSession API to Spring's documentation: using the StatelessSession API via the native Hibernate SessionFactory, but integrating with Spring's transaction management.

Further potential for explicit support to be explored for Spring 3.0.

Juergen

@spring-projects-issues
Copy link
Collaborator Author

Josh Moore commented

+1 Am currently running into this in 2.5.x with JTA issues:

[CODE]
2009-01-02 20:51:32,160 WARN [ bitronix.tm.BitronixTransaction] ( main) Synchronization.beforeCompletion() call failed for org.hibernate.transaction.CacheSynchronization, marking transaction as rollback only
org.hibernate.SessionException: Session is closed!
at org.hibernate.impl.AbstractSessionImpl.errorIfClosed(AbstractSessionImpl.java:49)
at org.hibernate.impl.StatelessSessionImpl.managedFlush(StatelessSessionImpl.java:300)
at org.hibernate.transaction.CacheSynchronization.beforeCompletion(CacheSynchronization.java:59)
at bitronix.tm.BitronixTransaction.fireBeforeCompletionEvent(BitronixTransaction.java:372)
at bitronix.tm.BitronixTransaction.commit(BitronixTransaction.java:146)
at bitronix.tm.BitronixTransactionManager.commit(BitronixTransactionManager.java:96)
at org.springframework.transaction.jta.JtaTransactionManager.doCommit(JtaTransactionManager.java:1028)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:709)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:678)
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)
at ome.services.util.Executor$Impl.executeStateless(Executor.java:234)
[/CODE]

and unfortunately StatelessSession shares no common interface with Session for dealing with deferred closes (as noted elsewhere).

For anyone who may update this ticket, the following forum entries are all looking for the same thing:

and

@spring-projects-issues
Copy link
Collaborator Author

Morten Andersen-Gott commented

Can't find the documentation that was supposed to be added according to Juergen's comments. Might be me that's unable to locate it though. Would be nice to have a way of managing the StatelessSession in the same way as the Session (closing session automatically etc).

@spring-projects-issues
Copy link
Collaborator Author

spring-projects-issues commented Oct 7, 2009

Andrew Goode commented

See #10870 for proposed patch introducing callback template for StatelessSessions. Perhaps the community could help refine the implementation to make it more robust.

@spring-projects-issues
Copy link
Collaborator Author

Willem Dekker commented

For my current project we needed to use the StatelessSession to achieve better performance. I have build some framework code so we are able to use the StatelessSession together with a (Stateful) HibernateEntityManager and let it join the same transaction. This works more or less the same as how you can mix an EntityManager together with the JdbcTemplate (use the same connection).

Since there are many requests on the web for this kind of behavior I would like to give our solution to the community in the hope you could benefit from it. The [code|#StatelessSessionFactoryBean.java] is attached to this issue and is tested using spring 3.2.0.RELEASE and hibernate 4.1.9.Final.
To use this just add the bean to your existing context configuration:

<bean class="com.acme.spring.data.support.hibernate.StatelessSessionFactoryBean" />

And @AutoWired the StatelessSession in you DAO's:

@AutoWired private StatelessSession statelessSession;

(!) Please note that this code will only work with the JpaTransactionManager and (of-course) Hibernate as the Jpa implementation. It also doesn't support suspending of transactions (i.e.: PROPAGATION_REQUIRES_NEW, PROPAGATION_NOT_SUPPORTED).

@spring-projects-issues spring-projects-issues added in: data Issues in data modules (jdbc, orm, oxm, tx) type: enhancement A general enhancement has: votes-jira Issues migrated from JIRA with more than 10 votes at the time of import labels Jan 10, 2019
@wagnerluis1982
Copy link

Is this issue still relevant?

@jhoeller jhoeller added the status: declined A suggestion or change that we don't feel we should currently apply label Jul 13, 2023
@jhoeller jhoeller removed this from the General Backlog milestone Jul 13, 2023
@snicoll snicoll closed this as not planned Won't fix, can't repro, duplicate, stale Jul 13, 2023
@hantsy
Copy link
Contributor

hantsy commented Jun 4, 2024

I encountered this issue when integrating the latest Spring 6.2.0 M3 with Jakarta Data RC 1 and Hibernate ORM 6.6.0.Alpha1(Jakarta Data provider, which use StatelessSesison in the background).

@hantsy
Copy link
Contributor

hantsy commented Jun 4, 2024

Found the solution here, https://gist.github.com/jelies/5181262

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
has: votes-jira Issues migrated from JIRA with more than 10 votes at the time of import in: data Issues in data modules (jdbc, orm, oxm, tx) status: declined A suggestion or change that we don't feel we should currently apply type: enhancement A general enhancement
Projects
None yet
Development

No branches or pull requests

5 participants