Page tree

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已改变。

...

  • 平台目前采用了Hibernate框架做OR Mapping映射,开发者只需定义POJO Class即可,不需显示的在Class中添加Hibernate JPA相关注解。平台会通过字节码增强的方式为Class添加Hibernate JPA注解。
  • 如下几种场景需开发者手工配置添加注解的规则,详细配置参见:为Entity模型增加Annotation相关配置

    场景描述
    注解配置
    说明
    A与B实体是OneToMany和ManyToOne的关系getOneToManyAndManyToOnePairList通过设置OneToMany和ManyToOne注解,在关系型数据库中会少生成一张中间表。
    A与B实体是ManyToMany的关系

    getManyToManyFieldsForCollectionType

    平台针对实体中的集合类型字段,默认的注解是OneToMany。此时针对关系型数据库来说,会创建一个A与B的中间表,该中间表中指向B实体的字段上会有唯一性约束限制。 如果是ManyToMany的关系,就须设置@ManyToMany注解。这样A与B的中间表上不再会有唯一性约束。
    针对一些特定字段,设置该字段在关系型数据库表中的名字、类型等信息

    getCustomFields

    1、实体中定义的字段,默认是按照字段名来创建数据库表中的字段名。各数据库中有一些保留关键字是不允许在创建表时被使用的,例如:MySQL数据库中 key 这个字符串就是一个关键字。 2、针对String类型的字段,Hibernate框架做ORMapping映射时,在关系型数据库中的默认类型及长度为varchar(255),如需显示的设置该字段的类型和长度,就需手工配置注解规则 3、Oracle11G规定字段名不能大于30位,
    定义OneToMany、ManyToMany的中间表名

    getJoinTableNames

    1、目前平台默认生成的中间表的表名格式为:A实体的SimpleName + "_" + A实体中指向B实体的字段名 + "_" + B实体的SimpleName 2、Oracle11G规定数据库表名不能大于30位,Postgresql、Mysql不能大于64位。故在使用某些数据库时,需手工配置中间表的名称。
    定义实体在关系型数据库中的表名、索引、唯一键

    getClassAndTableNameAndIndexNameAndUniqueNameListPairs

    1、定义实体在关系型数据库中的表名 2、定义表中的索引 3、定义表上的唯一键
    断开实体之间的级联关系

    getAssociationsForNotCascade

    1、目前平台针对实体中关联其他实体的字段上默认设置了 @Cascade({CascadeType.ALL})
    2、某些场景不需设置级联关系的,需手工配置规则,将级联关系去掉(目前平台只支持将所有的级联关系去掉,暂不支持只移除某种级联关系)

...