/** * Callback to create a {@link JpaRepository} instance with the given {@link EntityManager} * * @param information will never be {@literal null}. * @param entityManager will never be {@literal null}. * @return */ protected JpaRepositoryImplementation<?, ?> getTargetRepository(RepositoryInformation information, EntityManager entityManager) { JpaEntityInformation<?, Serializable> entityInformation = getEntityInformation(information.getDomainType()); Object repository = getTargetRepositoryViaReflection(information, entityInformation, entityManager); Assert.isInstanceOf(JpaRepositoryImplementation.class, repository); return (JpaRepositoryImplementation<?, ?>) repository; }
@Override protected Object getTargetRepository(RepositoryInformation information) { ElasticsearchEntityInformation<?, Serializable> entityInformation = getEntityInformation( information.getDomainType(), information); return getTargetRepositoryViaReflection(information, entityInformation, operations); }
@Override protected Object getTargetRepository(RepositoryInformation information) { MongoEntityInformation<?, Serializable> entityInformation = getEntityInformation(information.getDomainType(), information); return getTargetRepositoryViaReflection(information, entityInformation, operations); }
@Override protected Object getTargetRepository(RepositoryInformation information) { MongoEntityInformation<?, Serializable> entityInformation = getEntityInformation(information.getDomainType(), information); return getTargetRepositoryViaReflection(information, entityInformation, operations); }
@Override protected Object getTargetRepository(RepositoryInformation information) { return getTargetRepositoryViaReflection(information, information.getDomainType(), session); }
/** * Creates a new {@link RepositoriesEntityLookup} for the given {@link Repositories} and {@link LookupInformation}. * * @param repositories must not be {@literal null}. * @param lookupInformation must not be {@literal null}. */ @SuppressWarnings("unchecked") public RepositoriesEntityLookup(Repositories repositories, LookupInformation<Object, Object, Repository<? extends T, ?>> lookupInformation) { Assert.notNull(repositories, "Repositories must not be null!"); Assert.notNull(lookupInformation, "LookupInformation must not be null!"); RepositoryInformation information = repositories.getRepositoryInformation(lookupInformation.repositoryType)// .orElseThrow(() -> new IllegalStateException( "No repository found for type " + lookupInformation.repositoryType.getName() + "!")); this.domainType = information.getDomainType(); this.lookupInfo = lookupInformation; this.repository = (Repository<? extends T, ?>) repositories.getRepositoryFor(information.getDomainType())// .orElseThrow(() -> new IllegalStateException( "No repository found for type " + information.getDomainType().getName() + "!")); }
@Override protected Object getTargetRepository(RepositoryInformation information) { MongoEntityInformation<?, Serializable> entityInformation = getEntityInformation(information.getDomainType(), information); return getTargetRepositoryViaReflection(information, entityInformation, operations); }
@Override protected Object getTargetRepository(RepositoryInformation information) { MongoEntityInformation<?, Serializable> entityInformation = getEntityInformation(information.getDomainType(), information); return getTargetRepositoryViaReflection(information, entityInformation, operations); }
@Override protected Object getTargetRepository(RepositoryInformation metadata) { return getTargetRepositoryViaReflection(metadata, this.spannerTemplate, metadata.getDomainType()); }
/** * Callback to create a {@link EbeanRepository} instance with the given {@link EbeanServer} * * @param <T> * @param <ID> * @param ebeanServer * @return */ protected <T extends Persistable, ID extends Serializable> SimpleEbeanRepository<T, ID> getTargetRepository( RepositoryInformation information, EbeanServer ebeanServer) { return getTargetRepositoryViaReflection(information, information.getDomainType(), ebeanServer); }
@Override protected Object getTargetRepository(RepositoryInformation information) { if (isEntityView(information.getDomainType())) { JpaEntityInformation<?, Serializable> entityInformation = getEntityInformation(information.getDomainType()); EntityViewRepositoryImpl<?, ?, ?> entityViewRepository = getTargetRepositoryViaReflection(information, entityInformation, entityManager, cbf, evm, information.getDomainType()); return entityViewRepository; } else { return super.getTargetRepository(information); } }
@Override protected Object getTargetRepository(RepositoryInformation information) { CassandraEntityInformation<?, Object> entityInformation = getEntityInformation(information.getDomainType()); return getTargetRepositoryViaReflection(information, entityInformation, operations); }
@Override protected Object getTargetRepository(RepositoryInformation information) { RelationalEntityInformation<?, ?> entityInformation = getEntityInformation(information.getDomainType(), information); return getTargetRepositoryViaReflection(information, entityInformation, databaseClient, converter, dataAccessStrategy); }
@Override protected Object getTargetRepository(RepositoryInformation information) { CassandraEntityInformation<?, Object> entityInformation = getEntityInformation(information.getDomainType()); return getTargetRepositoryViaReflection(information, entityInformation, operations); }
@Override protected SimpleJpaRepository<?, ?> getTargetRepository(RepositoryInformation information, EntityManager entityManager) { JpaEntityInformation<?, Serializable> entityInformation = getEntityInformation(information.getDomainType()); return new BaseRepositoryImpl<>(entityInformation, entityManager); }
@Override protected Object getTargetRepository(RepositoryInformation repositoryInformation) { EntityInformation<?, ?> entityInformation = getEntityInformation(repositoryInformation.getDomainType()); return super.getTargetRepositoryViaReflection(repositoryInformation, entityInformation, keyValueOperations); }
@Override protected Object getTargetRepository(RepositoryInformation information) { final EntityInformation<?, Serializable> entityInformation = getEntityInformation(information.getDomainType()); return getTargetRepositoryViaReflection(information, entityInformation, this.applicationContext); }
public void registerCustomEditors(PropertyEditorRegistry registry) { for (Class<?> domainClass : repositories) { RepositoryInformation repositoryInformation = repositories.getRepositoryInformationFor(domainClass); CrudRepository<Object, Serializable> repository = repositories.getRepositoryFor(domainClass); DomainClassPropertyEditor<Object, Serializable> editor = new DomainClassPropertyEditor<Object, Serializable>( repository, repositories.getEntityInformationFor(repositoryInformation.getDomainType()), registry); registry.registerCustomEditor(repositoryInformation.getDomainType(), editor); } }
@Override protected Object getTargetRepository(RepositoryInformation repositoryInformation) { JdbcAggregateTemplate template = new JdbcAggregateTemplate(publisher, context, converter, accessStrategy); return new SimpleJdbcRepository<>(template, context.getPersistentEntity(repositoryInformation.getDomainType())); }
@SuppressWarnings({ "rawtypes", "unchecked" }) @Override protected Object getTargetRepository(RepositoryInformation information) { return isBaseJpaRepository(information.getRepositoryInterface()) ? (isHierarchicalJpaRepository(information.getRepositoryInterface()) ? new HierarchicalEntityRepositoryImpl(getEntityInformation(information.getDomainType()), entityManager, multiTenant, multiTenantAware) : new EntityRepositoryImpl<>(getEntityInformation(information.getDomainType()), entityManager, multiTenant, multiTenantAware)) : super.getTargetRepository(information); }