Ignite: запрос на выборку возвращает ноль - PullRequest
0 голосов
/ 02 мая 2018

Я новичок в розжиге, я пытаюсь получить данные с помощью репозитория воспламенения, но приведенный ниже запрос возвращает 'null'.

мой репозиторий

@Component
@RepositoryConfig(cacheName = "UserCache")
@Repository
public interface UserRepository extends IgniteRepository<UserEntity, Long> {

@Query("select a.* from UserEntity a where a.lastname=? ")
UserEntity selectUserlastName(String plastName);

Моя конфигурация кэша как

CacheConfiguration<Long, UserEntity> lUserCacheConfig = 
createCacheConfigurationStore("UserCache", UserCacheStore.class);

CacheJdbcPojoStoreFactory<Long, UserEntity> lUserJdbcStoreFactory = new 
CacheJdbcPojoStoreFactory<>();
UserJdbcPojoStoreFactory<? super Long, ? super UserEntity> 
lUserJdbcPojoStoreFactory = new UserJdbcPojoStoreFactory<>();
lUserJdbcStoreFactory.setDataSource(datasource);
lUserJdbcStoreFactory.setDialect(new OracleDialect());
lUserJdbcStoreFactory.setTypes(lUserJdbcPojoStoreFactory.
 configJdbcContactType());
lUserCacheConfig.setCacheStoreFactory(lUserJdbcStoreFactory);
// Configure Cache..
cfg.setCacheConfiguration(lUserCacheConfig);

Мой магазин PojoStore, как показано ниже:

public class UserJdbcPojoStoreFactory<K, V> extends 
AnstractJdbcPojoStoreFactory<Long, UserEntity> {
  private static final long serialVersionUID = 1L;

  @Autowired
  DataSource datasource;

  @Override
  public CacheJdbcPojoStore<Long, UserEntity> create() {
  // TODO Auto-generated method stub
  setDataSource(datasource);
  return super.create();
  }

  @Override
  public JdbcType configJdbcContactType() {
    JdbcType jdbcContactType = new JdbcType();
    jdbcContactType.setCacheName("UserCache");
    jdbcContactType.setKeyType(Long.class);
    jdbcContactType.setValueType(UserEntity.class);
    jdbcContactType.setDatabaseTable("USER");
    jdbcContactType.setDatabaseSchema("ORGNITATION");
    jdbcContactType.setKeyFields(new JdbcTypeField(Types.INTEGER, "id", 
    Long.class, "id"));
    jdbcContactType.setValueFields(
      new JdbcTypeField(Types.VARCHAR, "NAME", String.class, "NAME"), //
      new JdbcTypeField(Types.VARCHAR, "LASTNAME", String.class, "lastname"), 
 //

     return jdbcContactType;
 }

}

Пожалуйста, предложите ..

1 Ответ

0 голосов
/ 03 мая 2018

Убедитесь, что аннотация @Query импортирована из библиотеки ignite-spring-data, и протестируйте свой запрос с помощью SqlFieldsQuery.

...