Wie kann ich die GenerationType-Strategie mithilfe von Hibernate / JPA-Annotationen überschreiben?

Ich erwäge die Verwendung von Annotations zum Definieren meiner Ruhezustandszuordnungen, habe jedoch ein Problem festgestellt: Ich möchte mit einer Basisentitätsklasse gemeinsame Felder (einschließlich des ID-Felds) definieren, möchte jedoch, dass verschiedene Tabellen unterschiedliche ID-Generierungsstrategien haben:

@MappedSuperclass
public abstract class Base implements Serializable {
    @Id
    @Column(name="ID", nullable = false)
    private Integer id;
    public Integer getId(){return id;}
    public void setId(Integer id){this.id = id;}
    ...
}

@Entity
@Table(name="TABLE_A")
public class TableA extends Base {
    // Table_A wants to set an application-defined value for ID
    ...
}

@Entity
@Table(name="TABLE_B")
public class TableB extends Base {
    // How do I specify @GeneratedValue(strategy = AUTO) for ID here?
    ...
}

ibt es eine Möglichkeit, dies zu tun? Ich habe versucht, unter anderem die folgenden inTableB aber hibernate hat Einwände dagegen erhoben, dass ich zweimal dieselbe Spalte habe, und es scheint falsch:

@Override // So that we can set Generated strategy
@Id
@GeneratedValue(strategy = AUTO)
public Integer getId() {
    return super.getId();
}

Antworten auf die Frage(8)

Ihre Antwort auf die Frage