@Test public void testBagGetNonExisting() throws JasDBException { DBSession session = sessionFactory.createSession(); assertNull(session.getBag("testbag1")); assertNull(session.getBag("testbag2")); assertEquals(0, session.getBags().size()); assertFalse(new File(jasdbHome, "testbag1.pjs").exists()); assertFalse(new File(jasdbHome, "testbag1.pjsm").exists()); assertFalse(new File(jasdbHome, "testbag2.pjs").exists()); assertFalse(new File(jasdbHome, "testbag2.pjsm").exists()); }
@RequestMapping(value = "/{instanceId}/{bag}") public String findAll(@PathVariable String instanceId, @PathVariable String bag, Model model) throws JasDBException { DBSession session = sessionFactory.createSession(instanceId); EntityBag entityBag = session.getBag(bag); PageResult result = new PageResult(); model.addAttribute("page", result); if(entityBag != null) { QueryResult queryResult = entityBag.getEntities(DEFAULT_PAGE_SIZE); result.setEntities(loadEntities(queryResult)); } else { result.setMessage(String.format("Unable to load Bag: %s on instance: %s as it does not exist", bag, instanceId)); } return "data/query"; }
@Test public void testCreateAndGetInstanceBag() throws JasDBException, IOException { DBSession session = sessionFactory.createSession(); session.addInstance(MY_INSTANCE); session.createOrGetBag(MY_INSTANCE, BAG_1); //default instance should be null assertNull(session.getBag(BAG_1)); assertNotNull(MY_INSTANCE, session.getBag(MY_INSTANCE, BAG_1)); }
@Override public <T> T findEntity(Class<T> type, String entityId) throws JasDBStorageException { EntityMetadata entityMetadata = ENTITY_MAPPER.getEntityMetadata(type); EntityBag bag = session.getBag(entityMetadata.getBagName()); if(bag != null) { Entity entity = bag.getEntity(entityId); return ENTITY_MAPPER.mapFrom(type, entity); } return null; }
@RequestMapping(value = "/{instanceId}/{bag}", method = RequestMethod.POST) public String searchFieldValue(SearchForm searchForm, @PathVariable String instanceId, @PathVariable String bag, Model model) throws JasDBException { DBSession session = sessionFactory.createSession(instanceId); EntityBag entityBag = session.getBag(bag); PageResult result = new PageResult(); model.addAttribute("page", result); if(entityBag != null) { QueryResult queryResult = entityBag.find(QueryBuilder.createBuilder().field(searchForm.getField()).value(searchForm.getValue())).limit(DEFAULT_PAGE_SIZE).execute(); result.setEntities(loadEntities(queryResult)); } else { result.setMessage(String.format("Unable to load Bag: %s on instance: %s as it does not exist", bag, instanceId)); } return "data/query"; }
@Override public <T> List<T> findEntities(Class<T> types, QueryBuilder builder, int start, int limit) throws JasDBStorageException { List<T> entities = new ArrayList<>(); EntityMetadata entityMetadata = ENTITY_MAPPER.getEntityMetadata(types); EntityBag bag = session.getBag(entityMetadata.getBagName()); if(bag != null) { QueryExecutor executor = bag.find(builder); if(start > 0 && limit > 0) { executor.paging(start, limit); } else if(limit > 0) { executor.limit(limit); } QueryResult result = executor.execute(); LOG.debug("Executing Query: {} results: {}", builder, result.size()); for(Entity entity : result) { entities.add(ENTITY_MAPPER.mapFrom(types, entity)); } } return entities; } }