'Load data from DB by ID.'

@verify_has_db
def load(self, _id=None, full=True, retry=True):

    if (not _id):
        _id = self.id
    sql = (('SELECT    *    FROM    ' + self._DATA_TABLE) + '    WHERE    id    =    ?    ')
    try:
        row = self._db.select_one(sql, (_id,))
    except DBException as dbe:
        msg = 'An    unexpected    error    occurred    while    searching    for    id    "%s"    in    table    "%s".    Original    exception:    "%s".'
        raise DBException((msg % (_id, self._DATA_TABLE, dbe)))
    else:
        if (row is not None):
            self._load_from_row(row, full)
        elif retry:
            self._db.commit()
            self.load(_id=_id, full=full, retry=False)
        else:
            msg = ('An    internal    error    occurred    while    searching    for    id    "%s",    even    after    commit/retry' % _id)
            raise DBException(msg)
    return True
