Skip to content

Commit 8e41722

Browse files
committed
Implement unwrap() in Hibernate ORM StatelessSession proxies
So that Hibernate Data Repositories can work correctly.
1 parent 3fb8593 commit 8e41722

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

extensions/hibernate-orm/runtime/src/main/java/io/quarkus/hibernate/orm/runtime/StatelessSessionLazyDelegator.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -502,4 +502,9 @@ public CacheMode getCacheMode() {
502502
public void setCacheMode(CacheMode cacheMode) {
503503
delegate.get().setCacheMode(cacheMode);
504504
}
505+
506+
@Override
507+
public <T> T unwrap(Class<T> type) {
508+
return delegate.get().unwrap(type);
509+
}
505510
}

extensions/hibernate-orm/runtime/src/main/java/io/quarkus/hibernate/orm/runtime/session/TransactionScopedStatelessSession.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -875,4 +875,15 @@ public void setCacheMode(CacheMode cacheMode) {
875875
emr.statelessSession.setCacheMode(cacheMode);
876876
}
877877
}
878+
879+
@Override
880+
public <T> T unwrap(Class<T> type) {
881+
if (type.isAssignableFrom(StatelessSession.class)) {
882+
return (T) this;
883+
}
884+
checkBlocking();
885+
try (SessionResult emr = acquireSession()) {
886+
return emr.statelessSession.unwrap(type);
887+
}
888+
}
878889
}

0 commit comments

Comments
 (0)