Class BaseModelService<Entity extends BaseModel>

java.lang.Object
cool.scx.app.base.BaseModelService<Entity>

public class BaseModelService<Entity extends BaseModel> extends Object

提供一些针对 BaseModel 类型实体类 简单的 CRUD 操作的 service 类 业务 service 可以继承此类 (注意 : 如需要被 beanFactory 扫描到 请标注 ScxService 注解)

或手动创建 : new BaseModelService()

如果还是无法满足需求, 可以考虑使用 SQLRunner

Version:
0.0.1
Author:
scx567888
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected final Class<Entity>
    BaseDao
  • Constructor Summary

    Constructors
    Constructor
    Description
    从泛型中获取 entityClass
    手动创建 entityClass
  • Method Summary

    Modifier and Type
    Method
    Description
    final Entity
    add(cool.scx.data.field_policy.FieldPolicy updateFilter)
    纯表达式插入
    final Entity
    add(Entity entity)
    插入数据 (注意 !!!
    add(Entity entity, cool.scx.data.field_policy.FieldPolicy updateFilter)
    插入数据 (注意 !!!
    final List<Long>
    add(Collection<Entity> entityList)
    批量插入数据
    add(Collection<Entity> entityList, cool.scx.data.field_policy.FieldPolicy updateFilter)
    批量插入数据
    aggregate(cool.scx.data.aggregation.Aggregation aggregation)
     
    aggregate(cool.scx.data.aggregation.Aggregation aggregation, cool.scx.data.query.Query afterAggregateQuery)
     
    aggregate(cool.scx.data.query.Query beforeAggregateQuery, cool.scx.data.aggregation.Aggregation aggregation)
     
    aggregate(cool.scx.data.query.Query beforeAggregateQuery, cool.scx.data.aggregation.Aggregation aggregation, cool.scx.data.query.Query afterAggregateQuery)
     
    aggregateFirst(cool.scx.data.aggregation.Aggregation aggregation)
     
    aggregateFirst(cool.scx.data.aggregation.Aggregation aggregation, cool.scx.data.query.Query afterAggregateQuery)
     
    aggregateFirst(cool.scx.data.query.Query beforeAggregateQuery, cool.scx.data.aggregation.Aggregation aggregation)
     
    aggregateFirst(cool.scx.data.query.Query beforeAggregateQuery, cool.scx.data.aggregation.Aggregation aggregation, cool.scx.data.query.Query afterAggregateQuery)
     
    final cool.scx.data.Aggregator
    aggregator(cool.scx.data.aggregation.Aggregation aggregation)
     
    final cool.scx.data.Aggregator
    aggregator(cool.scx.data.aggregation.Aggregation aggregation, cool.scx.data.query.Query afterAggregateQuery)
     
    final cool.scx.data.Aggregator
    aggregator(cool.scx.data.query.Query beforeAggregateQuery, cool.scx.data.aggregation.Aggregation aggregation)
     
    final cool.scx.data.Aggregator
    aggregator(cool.scx.data.query.Query beforeAggregateQuery, cool.scx.data.aggregation.Aggregation aggregation, cool.scx.data.query.Query afterAggregateQuery)
     
    final cool.scx.jdbc.sql.SQL
    buildGetSQL(cool.scx.data.query.Query query, cool.scx.data.field_policy.FieldPolicy selectFilter)
     
    final cool.scx.jdbc.sql.SQL
    buildGetSQLWithAlias(cool.scx.data.query.Query query, cool.scx.data.field_policy.FieldPolicy selectFilter)
     
    final cool.scx.jdbc.sql.SQL
    buildListSQL(cool.scx.data.query.Query query, cool.scx.data.field_policy.FieldPolicy selectFilter)
     
    final cool.scx.jdbc.sql.SQL
    buildListSQLWithAlias(cool.scx.data.query.Query query, cool.scx.data.field_policy.FieldPolicy selectFilter)
     
    final long
    获取所有数据的条数
    final long
    count(cool.scx.data.query.Query query)
    根据聚合查询条件 Query 获取数据条数
    final cool.scx.data.jdbc.JDBCRepository<Entity>
    dao()
     
    final long
    delete(long... ids)
    根据 ID 列表删除指定的数据
    long
    delete(cool.scx.data.query.Query query)
    根据条件删除
    final Class<Entity>
     
    final List<Entity>
    获取所有数据
    final List<Entity>
    find(long... ids)
    根据 id 获取数据
    final List<Entity>
    find(cool.scx.data.field_policy.FieldPolicy selectFilter)
    获取所有数据 (使用查询过滤器)
    final List<Entity>
    find(cool.scx.data.query.Query query)
    根据聚合查询条件 Query 获取数据列表
    find(cool.scx.data.query.Query query, cool.scx.data.field_policy.FieldPolicy selectFilter)
    根据聚合查询条件 Query 获取数据列表
    final cool.scx.data.Finder<Entity>
    获取所有数据
    final cool.scx.data.Finder<Entity>
    finder(cool.scx.data.field_policy.FieldPolicy selectFilter)
    获取所有数据 (使用查询过滤器)
    final cool.scx.data.Finder<Entity>
    finder(cool.scx.data.query.Query query)
    根据聚合查询条件 Query 获取数据列表
    cool.scx.data.Finder<Entity>
    finder(cool.scx.data.query.Query query, cool.scx.data.field_policy.FieldPolicy selectFilter)
     
    final Entity
    get(long id)
    根据 ID (主键) 查询单条数据
    final Entity
    get(long id, cool.scx.data.field_policy.FieldPolicy selectFilter)
    根据 ID (主键) 查询单条数据
    final Entity
    get(cool.scx.data.query.Query query)
    根据聚合查询条件 Query 获取单条数据
    get(cool.scx.data.query.Query query, cool.scx.data.field_policy.FieldPolicy selectFilter)
    根据聚合查询条件 Query 获取单条数据
    final long
    update(cool.scx.data.field_policy.FieldPolicy updateFilter, cool.scx.data.query.Query query)
    根据 表达式更新数据
    final Entity
    update(Entity entity)
    根据 ID 更新 (注意 !!!
    final Entity
    update(Entity entity, cool.scx.data.field_policy.FieldPolicy updateFilter)
    根据 ID 更新 (注意 !!!
    long
    update(Entity entity, cool.scx.data.field_policy.FieldPolicy updateFilter, cool.scx.data.query.Query query)
    根据指定条件更新数据
    final long
    update(Entity entity, cool.scx.data.query.Query query)
    根据指定条件更新数据

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

  • Constructor Details

    • BaseModelService

      public BaseModelService()
      从泛型中获取 entityClass
    • BaseModelService

      public BaseModelService(Class<Entity> entityClass)
      手动创建 entityClass
      Parameters:
      entityClass - 继承自 BaseModel 的实体类 class
  • Method Details

    • add

      public final Entity add(Entity entity)
      插入数据 (注意 !!! 这里会在插入之后根据主键再次进行一次查询, 若只是进行插入且对性能有要求请使用 Repository.add(Object))
      Parameters:
      entity - 待插入的数据
      Returns:
      插入成功的数据 如果插入失败或数据没有主键则返回 null
    • add

      public final Entity add(cool.scx.data.field_policy.FieldPolicy updateFilter)
      纯表达式插入
    • add

      public Entity add(Entity entity, cool.scx.data.field_policy.FieldPolicy updateFilter)
      插入数据 (注意 !!! 这里会在插入之后根据主键再次进行一次查询, 若只是进行插入且对性能有要求请使用 Repository.add(Object, FieldPolicy) )})
      Parameters:
      entity - 待插入的数据
      updateFilter - 更新字段过滤器
      Returns:
      插入成功的数据 如果插入失败或数据没有主键则返回 null
    • add

      public final List<Long> add(Collection<Entity> entityList)
      批量插入数据
      Parameters:
      entityList - 数据集合
      Returns:
      插入成功的数据的自增主键列表
    • add

      public List<Long> add(Collection<Entity> entityList, cool.scx.data.field_policy.FieldPolicy updateFilter)
      批量插入数据
      Parameters:
      entityList - 数据集合
      updateFilter - 更新字段过滤器
      Returns:
      插入成功的数据的自增主键列表
    • find

      public final List<Entity> find()
      获取所有数据
      Returns:
      所有数据
    • find

      public final List<Entity> find(cool.scx.data.field_policy.FieldPolicy selectFilter)
      获取所有数据 (使用查询过滤器)
      Parameters:
      selectFilter - 查询字段过滤器
      Returns:
      所有数据
    • find

      public final List<Entity> find(cool.scx.data.query.Query query)
      根据聚合查询条件 Query 获取数据列表
      Parameters:
      query - 聚合查询参数对象
      Returns:
      数据列表
    • find

      public List<Entity> find(cool.scx.data.query.Query query, cool.scx.data.field_policy.FieldPolicy selectFilter)
      根据聚合查询条件 Query 获取数据列表
      Parameters:
      query - 聚合查询参数对象
      selectFilter - 查询字段过滤器
      Returns:
      数据列表
    • find

      public final List<Entity> find(long... ids)
      根据 id 获取数据
      Parameters:
      ids - id 列表
      Returns:
      列表数据
    • get

      public final Entity get(long id)
      根据 ID (主键) 查询单条数据
      Parameters:
      id - id ( 主键 )
      Returns:
      查到多个则返回第一个 没有则返回 null
    • get

      public final Entity get(long id, cool.scx.data.field_policy.FieldPolicy selectFilter)
      根据 ID (主键) 查询单条数据
      Parameters:
      id - id ( 主键 )
      selectFilter - 查询字段过滤器
      Returns:
      查到多个则返回第一个 没有则返回 null
    • get

      public final Entity get(cool.scx.data.query.Query query)
      根据聚合查询条件 Query 获取单条数据
      Parameters:
      query - 聚合查询参数对象
      Returns:
      查到多个则返回第一个 没有则返回 null
    • get

      public Entity get(cool.scx.data.query.Query query, cool.scx.data.field_policy.FieldPolicy selectFilter)
      根据聚合查询条件 Query 获取单条数据
      Parameters:
      query - 聚合查询参数对象
      selectFilter - 查询字段过滤器
      Returns:
      查到多个则返回第一个 没有则返回 null
    • finder

      public final cool.scx.data.Finder<Entity> finder()
      获取所有数据
      Returns:
      所有数据
    • finder

      public final cool.scx.data.Finder<Entity> finder(cool.scx.data.field_policy.FieldPolicy selectFilter)
      获取所有数据 (使用查询过滤器)
      Parameters:
      selectFilter - 查询字段过滤器
      Returns:
      所有数据
    • finder

      public final cool.scx.data.Finder<Entity> finder(cool.scx.data.query.Query query)
      根据聚合查询条件 Query 获取数据列表
      Parameters:
      query - 聚合查询参数对象
      Returns:
      数据列表
    • finder

      public cool.scx.data.Finder<Entity> finder(cool.scx.data.query.Query query, cool.scx.data.field_policy.FieldPolicy selectFilter)
    • update

      public final Entity update(Entity entity)
      根据 ID 更新 (注意 !!! 这里会在更新之后根据主键再次进行一次查询, 若只是进行更新且对性能有要求请使用 Repository.update(Object, FieldPolicy, Query))
      Parameters:
      entity - 待更新的数据 ( 注意: 请保证数据中 id 字段不为空 )
      Returns:
      更新成功后的数据
    • update

      public final Entity update(Entity entity, cool.scx.data.field_policy.FieldPolicy updateFilter)
      根据 ID 更新 (注意 !!! 这里会在更新之后根据主键再次进行一次查询, 若只是进行更新且对性能有要求请使用 Repository.update(Object, FieldPolicy, Query))
      Parameters:
      entity - 待更新的数据 ( 注意: 请保证数据中 id 字段不为空 )
      updateFilter - 更新字段过滤器
      Returns:
      更新成功后的数据
    • update

      public final long update(Entity entity, cool.scx.data.query.Query query)
      根据指定条件更新数据
      Parameters:
      entity - 待更新的数据
      query - 更新的条件
      Returns:
      更新成功的数据条数
    • update

      public final long update(cool.scx.data.field_policy.FieldPolicy updateFilter, cool.scx.data.query.Query query)
      根据 表达式更新数据
    • update

      public long update(Entity entity, cool.scx.data.field_policy.FieldPolicy updateFilter, cool.scx.data.query.Query query)
      根据指定条件更新数据
      Parameters:
      entity - 待更新的数据
      updateFilter - 更新字段过滤器
      query - 更新的条件
      Returns:
      更新成功的数据条数
    • delete

      public final long delete(long... ids)
      根据 ID 列表删除指定的数据
      Parameters:
      ids - 要删除的数据的 id 集合
      Returns:
      删除成功的数据条数
    • delete

      public long delete(cool.scx.data.query.Query query)
      根据条件删除
      Parameters:
      query - 删除条件
      Returns:
      被删除的数据条数
    • count

      public final long count()
      获取所有数据的条数
      Returns:
      所有数据的条数
    • count

      public final long count(cool.scx.data.query.Query query)
      根据聚合查询条件 Query 获取数据条数
      Parameters:
      query - 聚合查询参数对象
      Returns:
      数据条数
    • aggregator

      public final cool.scx.data.Aggregator aggregator(cool.scx.data.query.Query beforeAggregateQuery, cool.scx.data.aggregation.Aggregation aggregation, cool.scx.data.query.Query afterAggregateQuery)
    • aggregator

      public final cool.scx.data.Aggregator aggregator(cool.scx.data.aggregation.Aggregation aggregation, cool.scx.data.query.Query afterAggregateQuery)
    • aggregator

      public final cool.scx.data.Aggregator aggregator(cool.scx.data.query.Query beforeAggregateQuery, cool.scx.data.aggregation.Aggregation aggregation)
    • aggregator

      public final cool.scx.data.Aggregator aggregator(cool.scx.data.aggregation.Aggregation aggregation)
    • aggregate

      public final List<Map<String,Object>> aggregate(cool.scx.data.query.Query beforeAggregateQuery, cool.scx.data.aggregation.Aggregation aggregation, cool.scx.data.query.Query afterAggregateQuery)
    • aggregate

      public final List<Map<String,Object>> aggregate(cool.scx.data.aggregation.Aggregation aggregation, cool.scx.data.query.Query afterAggregateQuery)
    • aggregate

      public final List<Map<String,Object>> aggregate(cool.scx.data.query.Query beforeAggregateQuery, cool.scx.data.aggregation.Aggregation aggregation)
    • aggregate

      public final List<Map<String,Object>> aggregate(cool.scx.data.aggregation.Aggregation aggregation)
    • aggregateFirst

      public final Map<String,Object> aggregateFirst(cool.scx.data.query.Query beforeAggregateQuery, cool.scx.data.aggregation.Aggregation aggregation, cool.scx.data.query.Query afterAggregateQuery)
    • aggregateFirst

      public final Map<String,Object> aggregateFirst(cool.scx.data.aggregation.Aggregation aggregation, cool.scx.data.query.Query afterAggregateQuery)
    • aggregateFirst

      public final Map<String,Object> aggregateFirst(cool.scx.data.query.Query beforeAggregateQuery, cool.scx.data.aggregation.Aggregation aggregation)
    • aggregateFirst

      public final Map<String,Object> aggregateFirst(cool.scx.data.aggregation.Aggregation aggregation)
    • dao

      public final cool.scx.data.jdbc.JDBCRepository<Entity> dao()
    • entityClass

      public final Class<Entity> entityClass()
    • buildListSQL

      public final cool.scx.jdbc.sql.SQL buildListSQL(cool.scx.data.query.Query query, cool.scx.data.field_policy.FieldPolicy selectFilter)
    • buildGetSQL

      public final cool.scx.jdbc.sql.SQL buildGetSQL(cool.scx.data.query.Query query, cool.scx.data.field_policy.FieldPolicy selectFilter)
    • buildListSQLWithAlias

      public final cool.scx.jdbc.sql.SQL buildListSQLWithAlias(cool.scx.data.query.Query query, cool.scx.data.field_policy.FieldPolicy selectFilter)
    • buildGetSQLWithAlias

      public final cool.scx.jdbc.sql.SQL buildGetSQLWithAlias(cool.scx.data.query.Query query, cool.scx.data.field_policy.FieldPolicy selectFilter)