如何覆盖由MappedSuperclass扩展的实体中的方法

时间:2019-04-16 03:03:06

标签: java spring hibernate orm spring-data-jpa

我想知道是否有任何方法可以自定义@MappedSuperclass的getter和setter的名称。我知道这是一个愚蠢的问题,知道通常您会做的是扩展@MappedSuperclass,当然也扩展它的获取器和设置器,但是仍然想问。

我所拥有的是:

让我们假设我的项目中有两个模块,在这些模块中我想使用一个名为“ Inventory”的通用基类,该基类具有基属性以及getter和setter:

@MappedSuperclass
public class Inventory{

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int id;

    private String name;

    private String inventoryId = RandomStringUtils.randomAlphanumeric(5).toUpperCase();

    public Inventory() {

    }

    public Inventory(String name, String inventoryId) {
        this.name= nombre;
        this.inventoryId = inventoryId;
    }

    public String getName() {
        return name;
    }

    public Inventario setName(String nombre) {
        this.name = name;
        return this;
    }

    public String getInventoryId() {
        return inventoryId;
    }

    public Inventario setInventoryId(String inventoryId) {
        this.inventoryId = inventoryId;
        return this;
    }
}

当然,我还有另一个类可以像这样扩展Inventory类:

@Entity
@Table(name = "Tb_CKD_INVENTORY")
@AttributeOverrides({
        @AttributeOverride(name = "name", column = @Column(name="ckdInventoryName")),
        @AttributeOverride(name = "inventoryId", column = @Column(name="ckdInventoryName"))
})
public class CkdInventory extends Inventory{

    public CkdInventory() {
    }

}

如您所见,我使用 @AttributeOverride 注释覆盖了属性,但是当我实例化该类时,getter和setter仍被命名为它们的基类。< / p>

我知道这是一个超级愚蠢的问题,但是我只是想知道是否有任何方法可以实现此目的,因为我不知道任何可以完成此简单任务的注释,或者我是否只需要使用基本注释即可类方法,并在我的业务实现类和可读性中有些困惑

0 个答案:

没有答案