模块 org.redkale

接口 DistributeTableStrategy<T>

  • 类型参数:
    T - Entity类型
    所有已知实现类:
    LoggingSearchHandler.SearchLogRecord.TableStrategy

    public interface DistributeTableStrategy<T>
    分表分库策略,结合@DistributeTable使用
    不能与@Cacheable同时使用
    使用分表分库功能重点是主键的生成策略,不同场景生成策略不一样

    详情见: https://redkale.org

    作者:
    zhangjx
    另请参阅:
    DistributeTable
    • 方法概要

      所有方法 实例方法 抽象方法 默认方法 已过时的方法 
      修饰符和类型 方法 说明
      default String getSource​(Serializable primary)
      获取DataSource资源名,为null表示没有分布物理库
      查询单个对象(DataSource.find)时调用本方法
      default String getSource​(FilterNode node)
      获取DataSource资源名,为null表示没有分布物理库
      查询、修改、删除对象(DataSource.find、DataSource.query、DataSource.delete、DataSource.update)时调用本方法
      default String getSource​(T entity)
      获取DataSource资源名,为null表示没有分布物理库
      新增对象或更新单个对象(DataSource.insert、DataSource.update)时调用本方法
      String getTable​(String table, Serializable primary)
      获取对象的表名
      查询单个对象(DataSource.find)时调用本方法获取表名
      default String getTable​(String table, FilterNode node)
      已过时。
      2.8.0 replaced by getTables(String table, FilterNode node)
      String getTable​(String table, T entity)
      获取对象的表名
      新增对象或更新单个对象(DataSource.insert、DataSource.update)时调用本方法获取表名
      String[] getTables​(String table, FilterNode node)
      获取对象的表名
      查询、修改、删除对象(DataSource.find、DataSource.query、DataSource.delete、DataSource.update)时调用本方法获取表名
    • 方法详细资料

      • getSource

        default String getSource​(Serializable primary)
        获取DataSource资源名,为null表示没有分布物理库
        查询单个对象(DataSource.find)时调用本方法
        参数:
        primary - 记录主键
        返回:
        DataSource资源名
        从以下版本开始:
        2.8.0
      • getSource

        default String getSource​(T entity)
        获取DataSource资源名,为null表示没有分布物理库
        新增对象或更新单个对象(DataSource.insert、DataSource.update)时调用本方法
        参数:
        entity - 实体对象
        返回:
        DataSource资源名
        从以下版本开始:
        2.8.0
      • getSource

        default String getSource​(FilterNode node)
        获取DataSource资源名,为null表示没有分布物理库
        查询、修改、删除对象(DataSource.find、DataSource.query、DataSource.delete、DataSource.update)时调用本方法
        参数:
        node - 过滤条件
        返回:
        DataSource资源名
        从以下版本开始:
        2.8.0
      • getTable

        String getTable​(String table,
                        Serializable primary)
        获取对象的表名
        查询单个对象(DataSource.find)时调用本方法获取表名
        参数:
        table - 模板表的表名
        primary - 记录主键
        返回:
        带库名的全表名
      • getTable

        String getTable​(String table,
                        T entity)
        获取对象的表名
        新增对象或更新单个对象(DataSource.insert、DataSource.update)时调用本方法获取表名
        参数:
        table - 模板表的表名
        entity - 实体对象
        返回:
        带库名的全表名
      • getTables

        String[] getTables​(String table,
                           FilterNode node)
        获取对象的表名
        查询、修改、删除对象(DataSource.find、DataSource.query、DataSource.delete、DataSource.update)时调用本方法获取表名
        参数:
        table - 模板表的表名
        node - 过滤条件
        返回:
        带库名的全表名
        从以下版本开始:
        2.8.0
      • getTable

        @Deprecated(since="2.8.0")
        default String getTable​(String table,
                                FilterNode node)
        已过时。
        2.8.0 replaced by getTables(String table, FilterNode node)
        获取对象的表名
        查询、修改、删除对象(DataSource.find、DataSource.query、DataSource.delete、DataSource.update)时调用本方法获取表名
        注意: 需保证FilterNode过滤的结果集合必须在一个数据库表中
        参数:
        table - 模板表的表名
        node - 过滤条件
        返回:
        带库名的全表名
        另请参阅:
        getTables(java.lang.String, org.redkale.source.FilterNode)