在select,update,insert,delete操作中,
我们约定默认不处理null和空字符串;其它有值的字段全部会解析;
在select和delete两个操作中,会自动作为过滤条件(对应SQL语句的where部分).
默认操作符是"=".
#命名转换配置, 1 : order_no<–>orderNo(DB<–>Java) 最常用,可用于mysql等多种DB,
#2: ORDER_NO<–>orderNo(DB<–>Java) Oracle命名风格, 3: original 原样保留
bee.osql.naming.translateType=1
主键名称默认是"id"(小写)
采用约定,可以更省事,系统运行效率也更高。
默认主键作为过虑条件,其它非空且非null的作为要更新的新值。
默认操作符是"=".
从V1.11开始,缓存使用相对安全的原型模式;默认是实体没有实现序列化,则不放缓存(值为1)。
有0,1,2三种模式可选
bee.osql.cache.prototype=1
一级缓存,概念简单,功能强大;一级缓存也可以像JVM一样进行细粒度调优;支持可更新的长久缓存列表,更新配置表,不需要重启。天生抵御缓存穿透 。
默认是小写
#value is:lower,upper
bee.osql.sqlKeyWordCase=lower
部分数据库至少要配置:
bee.db.url =
bee.db.username =
自动生成表对应的Javabean,根据Javabean创建表,Javaweb后端代码
读取Excel;支持中文金额大小写转换;
复杂查询前后端可自动解析等.
默认不开启二级缓存
bee.osql.cache.useLevelTwo=false
默认不开启多数据源
bee.dosql.multiDS.enable
SuidRich里的方法,有IncludeType参数的,可以进行相关设置.
或者通过Condition设置IncludeType. Suid,SuidRich有不少方法有Condition参数。
public Condition setIncludeType(IncludeType includeType);
IncludeType中:INCLUDE_NULL包括null值,INCLUDE_EMPTY包括空字符,
INCLUDE_BOTH包括以上两者。
可自定义转换方法。 配置,可参考: FAQ_CN.md 第41点.
表名与实体名不一致,使用@Table。
字段不一致使用@column(V1.17提供转换实现支持)
官方不推荐使用@column注解,在API文档里记录有好几种可以替代该注解的方案.
V1.17 兼容JPA的@Table,@column(只需要设置name=“xxx”).
Bee支持在@Table注解里使用变量。如:@Table(“Orders${month}”),通过设置month的值,可以映射到不同的历史订单表。
某些名山规范,建议boolean型变量在entity改字段名,不是一个好主意,只会自找麻烦。
主键不是Id,使用@PrimaryKey
Suid.update(T entity) 会相应选取主键作为过滤条件。其它相关方法也有类似处理。
V1.17 兼容JPA的@Id字段,与@PrimaryKey有同等效果。
在Suid,SuidRich的insertAndReturnId方法,返回值是Long值。
V1.17 支持主键字段是Integer/int时,也可使用insertAndReturnId,返回的long型值是在int型范围内的。
主键字段是String类型,若是Long型数值的字符串,也可以使用insertAndReturnId(V1.17使用@GenId注解可以).
当使用非数字的字符串作为主键,如@GenUUID生成的字段,则不能使用insertAndReturnId.
主键自动生成
Bee框架,主键策略是一种松耦合的设计。实体里有可设置值,也可以自动生成。
有一个是否覆盖的开关,当实体有值时,即可配置了自动生成,也可以不覆盖原有的值(此时,自动生成被忽略)
统一配置:
使用bee.properties里bee.distribution.genid开头的相关配置。
在bee.properties配置的好处是:可以统一配置,不会侵入代码。
V1.17可以使用@GenId,@GenUUID注解生成主键值。