当前使用版本(必填,否则不予处理)

dependency("com.baomidou:mybatis-plus-boot-starter:3.4.1")

需求描述

JPA中有一个注解@AttributeOverride 可以实现子类覆盖父类的数据库映射字段名称。

比如父类 BaseTreeDomain 中有很多默认属性,固定的属性名称,有时候需要换成其他的名称,其中有个 表示父节点ID的字段命名为了 parent_id:

...
public class BaseTreeDomain extends BaseDomain {
    @Column(name = "parent_id")
    @CommonJpaQueryWord(func = CommonJpaQueryWord.MatchType.equal)
    private String parentId;
    ...
}

而在具体应用时候希望使用新的名称p_id来替换parent_id。 此时可以在子类业务类中使用 @AttributeOverride注解来重写属性名,比如在Menu中重写parent_id:

...
@AttributeOverride(name = "parentId", column = @Column(name = "p_id"))
public class Menu extends BaseTreeDomain 
...

mybatis或者mybatisplus如何实现类似功能呢?

Comment From: Jaxaxx

直接重写父类的字段设置为非表字段。或者为什么实体类都要继承父类?不是很懂场景

Comment From: huayanYu

不会做类似支持,只能满足绝大部分开发者的需求。 后面会越做越精简,不然变成JPA了。