当前使用版本(必填,否则不予处理)
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了。