use of io.vertigo.dynamo.search.data.domain.Item in project vertigo by KleeGroup.
the class ItemSearchLoader method loadData.
/**
* {@inheritDoc}
*/
@Override
public List<SearchIndex<Item, Item>> loadData(final SearchChunk<Item> searchChunk) {
final SearchIndexDefinition indexDefinition = searchManager.findFirstIndexDefinitionByKeyConcept(Item.class);
try (final VTransactionWritable tx = getTransactionManager().createCurrentTransaction()) {
final List<SearchIndex<Item, Item>> result = new ArrayList<>();
final DtDefinition dtDefinition = DtObjectUtil.findDtDefinition(Item.class);
for (final Item item : loadItems(searchChunk)) {
final URI<Item> uri = new URI<>(dtDefinition, item.getId());
result.add(SearchIndex.createIndex(indexDefinition, uri, item));
}
return result;
}
}
use of io.vertigo.dynamo.search.data.domain.Item in project vertigo by KleeGroup.
the class SearchManagerStoreTest method doSetUp.
@Override
protected void doSetUp() throws Exception {
final DefinitionSpace definitionSpace = getApp().getDefinitionSpace();
itemIndexDefinition = definitionSpace.resolve(IDX_ITEM, SearchIndexDefinition.class);
// A chaque test on recrée la table famille
try (VTransactionWritable transaction = transactionManager.createCurrentTransaction()) {
final SqlConnection connection = dataBaseManager.getConnectionProvider(SqlDataBaseManager.MAIN_CONNECTION_PROVIDER_NAME).obtainConnection();
execCallableStatement(connection, "create table item(ID BIGINT, MANUFACTURER varchar(50), MODEL varchar(255), DESCRIPTION varchar(512), YEAR INT, KILO INT, PRICE INT, CONSOMMATION NUMERIC(8,2), MOTOR_TYPE varchar(50), OPTIONAL_NUMBER BIGINT, OPTIONAL_STRING varchar(50), LAST_MODIFIED timestamp );");
execCallableStatement(connection, "create sequence SEQ_ITEM start with 10001 increment by 1");
}
// On supprime tout
remove("*:*");
final ItemDataBase itemDataBase = new ItemDataBase();
initialDbItemSize = itemDataBase.size();
try (VTransactionWritable transaction = transactionManager.createCurrentTransaction()) {
for (final Item item : itemDataBase.getAllItems()) {
item.setId(null);
storeManager.getDataStore().create(item);
}
transaction.commit();
}
waitIndexation();
}
use of io.vertigo.dynamo.search.data.domain.Item in project vertigo by KleeGroup.
the class SearchManagerStoreTest method testIndexUpdateData.
/**
* Test de mise à jour de l'index après une creation.
* La création s'effectue dans une seule transaction.
*/
@Test
public void testIndexUpdateData() {
testIndexAllQuery();
final Item item = createNewItem();
try (VTransactionWritable transaction = transactionManager.createCurrentTransaction()) {
storeManager.getDataStore().create(item);
transaction.commit();
}
waitIndexation();
Assert.assertEquals(initialDbItemSize + 1, query("*:*"));
Assert.assertEquals(1, query("DESCRIPTION:légende"));
item.setDescription("Vendue");
try (VTransactionWritable transaction = transactionManager.createCurrentTransaction()) {
storeManager.getDataStore().update(item);
transaction.commit();
}
waitIndexation();
Assert.assertEquals(initialDbItemSize + 1, query("*:*"));
Assert.assertEquals(0, query("DESCRIPTION:légende"));
Assert.assertEquals(1, query("DESCRIPTION:vendue"));
}
Aggregations