0

我正在尝试使用gcp 数据存储示例,但我想手动初始化存储库。另一个 SO 中的SimpleJpaRepository 之类的东西。是否可以初始化 DatastoreRepository ?

使用 JPA 存储库的示例可以简单地执行:

EmployeeRepository employeeRepository = new JpaRepositoryFactory(entityManager) .getRepository(EmployeeRepository.class);

entityManager 可以通过休眠会话工厂注入。所有实体类都可以注册到会话工厂的注册表中。

现在,为了初始化/注册 EmployeeRepository:公共接口 EmployeeRepository 扩展 DatastoreRepository

注意:代码将运行的环境不支持自动装配/注释。

4

1 回答 1

0

我可以通过使用以下方法使其工作:

DatastoreFactory datastoreFactory = new DefaultDatastoreFactory();
Supplier<Datastore> datastore = () -> datastoreFactory.create(DatastoreOptions.getDefaultInstance());


//Register Datastore Entity classes
DatastoreMappingContext datastoreMappingContext = new DatastoreMappingContext();
datastoreMappingContext.setInitialEntitySet(new HashSet<>(Arrays.asList(Employee.class)));

ObjectToKeyFactory objectToKeyFactory = new DatastoreServiceObjectToKeyFactory(datastore);

DatastoreEntityConverter datastoreEntityConverter = new DefaultDatastoreEntityConverter(datastoreMappingContext, objectToKeyFactory);
DatastoreOperations datastoreOperations = new DatastoreTemplate(datastore,datastoreEntityConverter, datastoreMappingContext, objectToKeyFactory);

EmployeeRepository employeeRepository  = new SimpleDatastoreRepository<>(datastoreOperations, Employee.class);
employeeRepository.count(); // findAll() etc
于 2020-05-13T18:49:16.993 回答