TABLE_PER_CLASS 和独立标识符管理

问题描述 投票:0回答:1

假设我有一个抽象父类和两个实现该父类的子类。如果我希望每个子类独立处理其标识符,而不是让父类管理它们,我该如何实现?我的意思是,我希望子类 1 的实例具有从 1 开始的 ID,而子类 2 也具有从 1 开始的 ID,因此子类 1 的 ID 可以为 1,子类 2 的 ID 可以为 1 ID 也为 1。

这里是我编写的一些代码,但无法使其工作:

@Entity
@Data
@NoArgsConstructor
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public abstract class Parent {
}

@Entity
public class FirstChild extends Cuenta {

    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE)
    private Integer id;
}

@Entity
public class SecondChild extends Cuenta {

    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE)
    private Integer id;

java spring-data-jpa
1个回答
0
投票

您的Java实体应该与您在数据库中的表结构相匹配。因此,建议在实体类 FirstChild 和 SecondChild 中包含包括 id 在内的所有属性。

现在,也许您希望代码使用父类的一个实例来调用同一组 setter。为此,您应该继承一个包含常见 getter/setter 列表的接口,并在两个类上实现相同的接口。这样您就可以编写接口代码而不是实现代码。

© www.soinside.com 2019 - 2024. All rights reserved.