class AbstractDynamoDao extends AbstractDao<M,P,K,I> {

    protected M loadByIndex(String indexName, String key, Object value) {
        Optional<M> model = loadByIndexOpt(indexName, key, value);
        return model.orElseThrow(() -> new DataNotFoundException(getDisplayModelName() + " not found: " + value));
    }

    public  AbstractDynamoDao(Class<M> modelClass, Class<P> partialClass, AmazonDynamoDB db, String tableName);
    public  AbstractDynamoDao(Class<M> modelClass, Class<P> partialClass, AmazonDynamoDB db, String tableName, ItemMapper<M> modelMapper, ItemMapper<P> partialMapper);

}