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
  • 相关阅读:
    #JavaScript 闭包问题详解 #打倒心魔
    Typora + cnblog 图片自动上传 (超详细哦)
    #FUNCTION#CALL对象中的函数内作用域问题.md
    #windows #Github #HOST
    #######对象迭代器######
    #为什么不建议使用for...in 去遍历数组
    #前后端附件传输,去重的一种方式#解决方案
    #页面滚动刷新的实现原理 #下拉刷新#上拉刷新#drag to fresh
    自己动手实现一个阻塞队列
    APC注入
  • 原文地址:https://www.cnblogs.com/liaojie970/p/8029000.html
Copyright © 2011-2022 走看看