Skip to content

[#2238] create Delegators for use in Quarkus #2239

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

Merged
merged 1 commit into from
May 1, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,364 @@
/* Hibernate, Relational Persistence for Idiomatic Java
*
* SPDX-License-Identifier: Apache-2.0
* Copyright: Red Hat Inc. and Hibernate Authors
*/
package org.hibernate.reactive.mutiny.delegation;

import io.smallrye.mutiny.Uni;
import jakarta.persistence.CacheRetrieveMode;
import jakarta.persistence.CacheStoreMode;
import jakarta.persistence.EntityGraph;
import jakarta.persistence.FlushModeType;
import jakarta.persistence.LockModeType;
import jakarta.persistence.TypedQueryReference;
import jakarta.persistence.criteria.CriteriaBuilder;
import jakarta.persistence.criteria.CriteriaDelete;
import jakarta.persistence.criteria.CriteriaQuery;
import jakarta.persistence.criteria.CriteriaUpdate;
import jakarta.persistence.metamodel.Attribute;
import org.hibernate.*;
import org.hibernate.query.criteria.JpaCriteriaInsert;
import org.hibernate.reactive.common.AffectedEntities;
import org.hibernate.reactive.common.Identifier;
import org.hibernate.reactive.common.ResultSetMapping;
import org.hibernate.reactive.mutiny.Mutiny;

import java.util.List;
import java.util.function.Function;

/**
* Wraps a {@linkplain #delegate} session.
*
* @author Gavin King
*/
public abstract class MutinySessionDelegator implements Mutiny.Session {

public abstract Mutiny.Session delegate();

public <T> Uni<T> find(Class<T> entityClass, Object id) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Session.find
; it is advisable to add an Override annotation.
return delegate().find(entityClass, id);
}

public <T> Uni<T> find(Class<T> entityClass, Object id, LockModeType lockModeType) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Session.find
; it is advisable to add an Override annotation.
return delegate().find(entityClass, id, lockModeType);
}

public <T> Uni<T> find(Class<T> entityClass, Object id, LockMode lockMode) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Session.find
; it is advisable to add an Override annotation.
return delegate().find(entityClass, id, lockMode);
}

public <T> Uni<T> find(EntityGraph<T> entityGraph, Object id) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Session.find
; it is advisable to add an Override annotation.
return delegate().find(entityGraph, id);
}

public <T> Uni<List<T>> find(Class<T> entityClass, Object... ids) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Session.find
; it is advisable to add an Override annotation.
return delegate().find(entityClass, ids);
}

public <R> Mutiny.SelectionQuery<R> createNamedQuery(String queryName, Class<R> resultType) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
QueryProducer.createNamedQuery
; it is advisable to add an Override annotation.
return delegate().createNamedQuery(queryName, resultType);
}

public <R> Mutiny.SelectionQuery<R> createQuery(String queryString, Class<R> resultType) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
QueryProducer.createQuery
; it is advisable to add an Override annotation.
return delegate().createQuery(queryString, resultType);
}

public boolean isReadOnly(Object entityOrProxy) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Session.isReadOnly
; it is advisable to add an Override annotation.
return delegate().isReadOnly(entityOrProxy);
}

public <R> Mutiny.SelectionQuery<R> createNativeQuery(String queryString, Class<R> resultType, AffectedEntities affectedEntities) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
QueryProducer.createNativeQuery
; it is advisable to add an Override annotation.
return delegate().createNativeQuery(queryString, resultType, affectedEntities);
}

public boolean isDefaultReadOnly() {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Session.isDefaultReadOnly
; it is advisable to add an Override annotation.
return delegate().isDefaultReadOnly();
}

public <T> Uni<T> unproxy(T association) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Session.unproxy
; it is advisable to add an Override annotation.
return delegate().unproxy(association);
}

public Mutiny.MutationQuery createMutationQuery(String queryString) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
QueryProducer.createMutationQuery
; it is advisable to add an Override annotation.
return delegate().createMutationQuery(queryString);
}

public Uni<Void> close() {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Closeable.close
; it is advisable to add an Override annotation.
return delegate().close();
}

public Mutiny.Session disableFetchProfile(String name) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Session.disableFetchProfile
; it is advisable to add an Override annotation.
return delegate().disableFetchProfile(name);
}

public <T> EntityGraph<T> getEntityGraph(Class<T> rootType, String graphName) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
QueryProducer.getEntityGraph
; it is advisable to add an Override annotation.
return delegate().getEntityGraph(rootType, graphName);
}

public <R> Mutiny.SelectionQuery<R> createSelectionQuery(String queryString, Class<R> resultType) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
QueryProducer.createSelectionQuery
; it is advisable to add an Override annotation.
return delegate().createSelectionQuery(queryString, resultType);
}

public Uni<Void> refresh(Object entity, LockModeType lockModeType) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Session.refresh
; it is advisable to add an Override annotation.
return delegate().refresh(entity, lockModeType);
}

public Uni<Void> lock(Object entity, LockModeType lockModeType) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Session.lock
; it is advisable to add an Override annotation.
return delegate().lock(entity, lockModeType);
}

public <R> Mutiny.Query<R> createQuery(TypedQueryReference<R> typedQueryReference) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
QueryProducer.createQuery
; it is advisable to add an Override annotation.
return delegate().createQuery(typedQueryReference);
}

public <R> Mutiny.SelectionQuery<R> createNativeQuery(String queryString, ResultSetMapping<R> resultSetMapping, AffectedEntities affectedEntities) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
QueryProducer.createNativeQuery
; it is advisable to add an Override annotation.
return delegate().createNativeQuery(queryString, resultSetMapping, affectedEntities);
}

public Uni<Void> lock(Object entity, LockMode lockMode) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Session.lock
; it is advisable to add an Override annotation.
return delegate().lock(entity, lockMode);
}

@Incubating
public <T> Uni<T> find(Class<T> entityClass, Identifier<T> naturalId) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Session.find
; it is advisable to add an Override annotation.
return delegate().find(entityClass, naturalId);
}

public <T> Uni<T> withTransaction(Function<Mutiny.Transaction, Uni<T>> work) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Session.withTransaction
; it is advisable to add an Override annotation.
return delegate().withTransaction(work);
}

public <R> Mutiny.SelectionQuery<R> createNativeQuery(String queryString, ResultSetMapping<R> resultSetMapping) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
QueryProducer.createNativeQuery
; it is advisable to add an Override annotation.
return delegate().createNativeQuery(queryString, resultSetMapping);
}

public <T> EntityGraph<T> createEntityGraph(Class<T> rootType, String graphName) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
QueryProducer.createEntityGraph
; it is advisable to add an Override annotation.
return delegate().createEntityGraph(rootType, graphName);
}

public Mutiny.Transaction currentTransaction() {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Session.currentTransaction
; it is advisable to add an Override annotation.
return delegate().currentTransaction();
}

public Mutiny.Session detach(Object entity) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Session.detach
; it is advisable to add an Override annotation.
return delegate().detach(entity);
}

public Mutiny.Session setCacheStoreMode(CacheStoreMode cacheStoreMode) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Session.setCacheStoreMode
; it is advisable to add an Override annotation.
return delegate().setCacheStoreMode(cacheStoreMode);
}

public FlushMode getFlushMode() {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Session.getFlushMode
; it is advisable to add an Override annotation.
return delegate().getFlushMode();
}

public LockMode getLockMode(Object entity) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Session.getLockMode
; it is advisable to add an Override annotation.
return delegate().getLockMode(entity);
}

public <R> Mutiny.Query<R> createNamedQuery(String queryName) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
QueryProducer.createNamedQuery
; it is advisable to add an Override annotation.
return delegate().createNamedQuery(queryName);
}

public CriteriaBuilder getCriteriaBuilder() {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
QueryProducer.getCriteriaBuilder
; it is advisable to add an Override annotation.
return delegate().getCriteriaBuilder();
}

public Mutiny.SessionFactory getFactory() {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Session.getFactory
; it is advisable to add an Override annotation.
return delegate().getFactory();
}

public <R> Mutiny.SelectionQuery<R> createNativeQuery(String queryString, Class<R> resultType) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
QueryProducer.createNativeQuery
; it is advisable to add an Override annotation.
return delegate().createNativeQuery(queryString, resultType);
}

public Mutiny.Session setSubselectFetchingEnabled(boolean enabled) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Session.setSubselectFetchingEnabled
; it is advisable to add an Override annotation.
return delegate().setSubselectFetchingEnabled(enabled);
}

public Mutiny.Session setFlushMode(FlushMode flushMode) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Session.setFlushMode
; it is advisable to add an Override annotation.
return delegate().setFlushMode(flushMode);
}

public Uni<Void> remove(Object entity) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Session.remove
; it is advisable to add an Override annotation.
return delegate().remove(entity);
}

public Mutiny.Session setCacheMode(CacheMode cacheMode) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Session.setCacheMode
; it is advisable to add an Override annotation.
return delegate().setCacheMode(cacheMode);
}

public Filter enableFilter(String filterName) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Session.enableFilter
; it is advisable to add an Override annotation.
return delegate().enableFilter(filterName);
}

public Mutiny.MutationQuery createMutationQuery(JpaCriteriaInsert<?> insert) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
QueryProducer.createMutationQuery
; it is advisable to add an Override annotation.
return delegate().createMutationQuery(insert);
}

public <R> Mutiny.Query<R> createNativeQuery(String queryString, AffectedEntities affectedEntities) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
QueryProducer.createNativeQuery
; it is advisable to add an Override annotation.
return delegate().createNativeQuery(queryString, affectedEntities);
}

public Mutiny.Session setReadOnly(Object entityOrProxy, boolean readOnly) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Session.setReadOnly
; it is advisable to add an Override annotation.
return delegate().setReadOnly(entityOrProxy, readOnly);
}

public <T> EntityGraph<T> createEntityGraph(Class<T> rootType) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
QueryProducer.createEntityGraph
; it is advisable to add an Override annotation.
return delegate().createEntityGraph(rootType);
}

public Uni<Void> refreshAll(Object... entities) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Session.refreshAll
; it is advisable to add an Override annotation.
return delegate().refreshAll(entities);
}

public Mutiny.MutationQuery createMutationQuery(CriteriaDelete<?> deleteQuery) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
QueryProducer.createMutationQuery
; it is advisable to add an Override annotation.
return delegate().createMutationQuery(deleteQuery);
}

public Integer getBatchSize() {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Session.getBatchSize
; it is advisable to add an Override annotation.
return delegate().getBatchSize();
}

public Uni<Void> refresh(Object entity, LockMode lockMode) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Session.refresh
; it is advisable to add an Override annotation.
return delegate().refresh(entity, lockMode);
}

public <T> T getReference(Class<T> entityClass, Object id) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Session.getReference
; it is advisable to add an Override annotation.
return delegate().getReference(entityClass, id);
}

public <T> T getReference(T entity) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Session.getReference
; it is advisable to add an Override annotation.
return delegate().getReference(entity);
}

public Mutiny.Session setBatchSize(Integer batchSize) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Session.setBatchSize
; it is advisable to add an Override annotation.
return delegate().setBatchSize(batchSize);
}

public Uni<Void> refresh(Object entity) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Session.refresh
; it is advisable to add an Override annotation.
return delegate().refresh(entity);
}

public CacheMode getCacheMode() {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Session.getCacheMode
; it is advisable to add an Override annotation.
return delegate().getCacheMode();
}

public Uni<Void> mergeAll(Object... entities) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Session.mergeAll
; it is advisable to add an Override annotation.
return delegate().mergeAll(entities);
}

public Uni<Void> persist(Object object) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Session.persist
; it is advisable to add an Override annotation.
return delegate().persist(object);
}

public boolean contains(Object entity) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Session.contains
; it is advisable to add an Override annotation.
return delegate().contains(entity);
}

public Mutiny.MutationQuery createMutationQuery(CriteriaUpdate<?> updateQuery) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
QueryProducer.createMutationQuery
; it is advisable to add an Override annotation.
return delegate().createMutationQuery(updateQuery);
}

public int getFetchBatchSize() {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Session.getFetchBatchSize
; it is advisable to add an Override annotation.
return delegate().getFetchBatchSize();
}

public Mutiny.Session setDefaultReadOnly(boolean readOnly) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Session.setDefaultReadOnly
; it is advisable to add an Override annotation.
return delegate().setDefaultReadOnly(readOnly);
}

public Mutiny.Session clear() {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Session.clear
; it is advisable to add an Override annotation.
return delegate().clear();
}

public <E, T> Uni<T> fetch(E entity, Attribute<E, T> field) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Session.fetch
; it is advisable to add an Override annotation.
return delegate().fetch(entity, field);
}

public <R> Mutiny.SelectionQuery<R> createQuery(CriteriaQuery<R> criteriaQuery) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
QueryProducer.createQuery
; it is advisable to add an Override annotation.
return delegate().createQuery(criteriaQuery);
}

public Mutiny.Session setCacheRetrieveMode(CacheRetrieveMode cacheRetrieveMode) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Session.setCacheRetrieveMode
; it is advisable to add an Override annotation.
return delegate().setCacheRetrieveMode(cacheRetrieveMode);
}

public Uni<Void> removeAll(Object... entities) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Session.removeAll
; it is advisable to add an Override annotation.
return delegate().removeAll(entities);
}

public Filter getEnabledFilter(String filterName) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Session.getEnabledFilter
; it is advisable to add an Override annotation.
return delegate().getEnabledFilter(filterName);
}

public void disableFilter(String filterName) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Session.disableFilter
; it is advisable to add an Override annotation.
delegate().disableFilter(filterName);
}

public <R> Mutiny.MutationQuery createQuery(CriteriaDelete<R> criteriaDelete) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
QueryProducer.createQuery
; it is advisable to add an Override annotation.
return delegate().createQuery(criteriaDelete);
}

public Mutiny.Session enableFetchProfile(String name) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Session.enableFetchProfile
; it is advisable to add an Override annotation.
return delegate().enableFetchProfile(name);
}

public <T> ResultSetMapping<T> getResultSetMapping(Class<T> resultType, String mappingName) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
QueryProducer.getResultSetMapping
; it is advisable to add an Override annotation.
return delegate().getResultSetMapping(resultType, mappingName);
}

public Uni<Void> flush() {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Session.flush
; it is advisable to add an Override annotation.
return delegate().flush();
}

public Uni<Void> persist(String entityName, Object object) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Session.persist
; it is advisable to add an Override annotation.
return delegate().persist(entityName, object);
}

public <R> Mutiny.Query<R> createNativeQuery(String queryString) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
QueryProducer.createNativeQuery
; it is advisable to add an Override annotation.
return delegate().createNativeQuery(queryString);
}

public boolean isFetchProfileEnabled(String name) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Session.isFetchProfileEnabled
; it is advisable to add an Override annotation.
return delegate().isFetchProfileEnabled(name);
}

public <T> Uni<T> merge(T entity) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Session.merge
; it is advisable to add an Override annotation.
return delegate().merge(entity);
}

public boolean isSubselectFetchingEnabled() {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Session.isSubselectFetchingEnabled
; it is advisable to add an Override annotation.
return delegate().isSubselectFetchingEnabled();
}

public <R> Mutiny.MutationQuery createQuery(CriteriaUpdate<R> criteriaUpdate) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
QueryProducer.createQuery
; it is advisable to add an Override annotation.
return delegate().createQuery(criteriaUpdate);
}

public Mutiny.Session setFetchBatchSize(int batchSize) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Session.setFetchBatchSize
; it is advisable to add an Override annotation.
return delegate().setFetchBatchSize(batchSize);
}

public <T> Uni<T> fetch(T association) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Session.fetch
; it is advisable to add an Override annotation.
return delegate().fetch(association);
}

public Uni<Void> persistAll(Object... entities) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Session.persistAll
; it is advisable to add an Override annotation.
return delegate().persistAll(entities);
}

@Deprecated
public <R> Mutiny.Query<R> createQuery(String queryString) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
QueryProducer.createQuery
; it is advisable to add an Override annotation.
return delegate().createQuery(queryString);
}

public Mutiny.Session setFlushMode(FlushModeType flushModeType) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Session.setFlushMode
; it is advisable to add an Override annotation.
return delegate().setFlushMode(flushModeType);
}

public boolean isOpen() {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Session.isOpen
; it is advisable to add an Override annotation.
return delegate().isOpen();
}
}
Loading
Loading