zoukankan      html  css  js  c++  java
  • MyBatis Generator配置文件context元素的defaultModelType属性

    MyBatis Generator配置文件context元素的defaultModelType属性 

    MyBatis Generator配置文件context元素有一个defaultModelType属性,这个属性的值会影响实体类(或叫domain类,model类)的生成。  
      
    这个属性用于设置产生的模型类型。模型类型定义了MBG如何去产生模型类。对于一些模型类型,MBG会为每一张表产生单独的实体类,而其他的模型类型,MBG会依据表的结构产生一些不同的实体类 
    这个属性支持以下三个值:  
      
    conditional  
    这是默认值  
    这个模型与hierarchical模型相似,除了如果一个实体类只包含一个字段,则不会单独生成此实体类。因此,如果一个表的主键只有一个字段,那么不会为该字段生成单独的实体类,会将该字段合并到基本实体类中
      
    flat  
    该模型为每一张表只生成一个实体类。这个实体类包含表中的所有字段。一般使用这个模型就够了。  
      
    hierarchical  
    如果表有主键,那么该模型会产生一个单独的主键实体类,如果表还有BLOB字段,则会为表生成一个包含所有BLOB字段的单独的实体类,然后为所有其他的字段生成一个单独的实体类。MBG会在所有生成的实体类之间维护一个继承关系  
    显然这个模型比较复杂。  
    IntrospectedTable中的rules属性(接口Rules)中有三个方法:
      generatePrimaryKeyClass()
      generateBaseRecordClass()
      generateRecordWithBLOBsClass()控制是否生成三种Model文件。
    mybatis提供了三种ModelType: HIERARCHICAL("hierarchical")、FLAT("flat"),CONDITIONAL("conditional");
    对应三种modelRule:HierarchicalModelRules、FlatModelRules、ConditionalModelRules。
    通过在mybatis generator配置文件增加属性defaultModelType=“hierarchical”可以控制不生成PrimarykeyClass。
    这种配置会导致只包含联合主键的表不能生成Model,可以通过修改HierarchicalModelRules方法中的generateBaseRecordClass()改为返回true,则可生成对应Model
  • 相关阅读:
    C# NAudio 变声
    初探Protostuff的使用
    CentOS7 配置阿里云yum源,非常之简单
    javacv 视频增加视频(画中画)
    抓包调试fiddler
    CentOS7 手动编译升级GCC至9.3.0
    C# CefSharp 新版本(83 以后版本) 如何在js中直接调用c#类
    毕业设计——驾驶证理论考试系统的设计与实现 2022年1月2日20:35:14
    送餐机器人乐动雷达记录
    linux下拉取git代码
  • 原文地址:https://www.cnblogs.com/liaojie970/p/8029000.html
Copyright © 2011-2022 走看看