Skip to content

父类字段没有自动创建

问题

子类继承了父类,但是父类中的字段没有在子类的表中自动创建列

原因

最初对父类字段的处理方式是通过getDeclaredFields方法,获取了全部字段,仅剔除了static和final修饰的字段。

后续有小伙伴反馈,在使用部分框架(比如MybatisFlex)的时候,使用它的基类,会错误的将内部的私有字段在表中创建了列,不符合继承的原则。

所以,自1.8.1开始,修改了子类对父类字段的继承规则,仅支持public和protected修饰的字段,作为可被继承的字段。

解决方案

1.8.4开始,新增了一个strictExtends配置开关,默认开启。

表示:子类继承父类的字段是否开启严格继承的模式(只继承public、protected修饰的字段)。