func queryOneOrGetDefault( query orm.QuerySeter, resultHolder interface{}, defaultFunc func() interface{}, nilValue interface{}, ) (interface{}, error) { err := query.One(resultHolder) switch err { case nil: break case orm.ErrNoRows: return defaultFunc(), nil default: return nilValue, err } return resultHolder, nil }