package dbcache import ( "context" "gorm.io/gorm" ) type CacheDependency interface { GetValue(ctx context.Context, tx *gorm.DB) (value string, err error) } type SqlDependency struct { dependSQL string dependArgs []any } func (d *SqlDependency) GetValue(ctx context.Context, tx *gorm.DB) (value string, err error) { var dependValue string err = tx.Raw(d.dependSQL, d.dependArgs...).Scan(&dependValue).Error return dependValue, err } func NewSqlDependency(dependSQL string, dependArgs ...any) *SqlDependency { return &SqlDependency{ dependSQL: dependSQL, dependArgs: dependArgs, } }