Warum wird Tabelle nur von eine vererbte klasse angezeigt(Hibernate)

Hallo Leute,
da ist eine grobe ausschnitt aus der Klassen
Warum wird ADMIN Tabelle dargestellt und Customer nicht?

mysql> show tables;
±--------------------------+
| Tables_in_vehicle_booking |
±--------------------------+
| ADMIN |
±--------------------------+
1 row in set (0,00 sec)

@MappedSuperclass
@Inheritance(strategy = InheritanceType.JOINED)
public  abstract class User {
	@Id
	@Column( name = "USERNAME")
	private String username;
}
@Table(name = "ADMIN")
public class Admin extends User{
	
	public Admin(String username, String password, Date regdate){
		super(username, password,regdate);
	}

}```


hier @Inheritance(strategy = InheritanceType.JOINED) weil Customer ist Oberklasse von Owner und VehicleUser. Dass Customer Payment object enthält schaue ich später an wie 1 zu 1 Beziehung in Hibernate kennzeichnen ist. Ich habe noch eine Frage Inclusive owners und vehicleUsers brauche ich doch nicht dass ich @Id reinschreibe, aber sonst bei Vehicle und Booking brauche ich schon oder? Denke ich in diese Zeilen richtig?

@Inheritance(strategy = InheritanceType.JOINED)
@Entity
@Table(name = „CUSTOMER“)
public class Customer extends User {

@Column(name = "PAYMENT")
private Payment payment;
@Column(name = "FAMILYNAME")
private String familyname;

Danke euch

*** Edit ***

Warum wird von mir verlangt dass ich  Payment als enum definiere?
warum darf ich in User @Id ohne dass unten Id_Atributt steht definieren und in Payment nicht? wegen @Id bekomme ich Fehler dass ich Payment als enum definieren muss;

```@MappedSuperclass
@Inheritance(strategy = InheritanceType.JOINED)
public abstract class Payment {
	@Id

}
@Table(name = "BANK")
public class Bank extends Payment{
	
	@Column(name = "BANKNAME")
	private String bank;
	@Column(name = "ACCOUNT")
	private String account;
}
	```

@Entity
@Table(name = „CreditCard“)
public class CreditCard extends Payment{
@Column(name = „NUMBER“)
private String number;
@Column(name = „BRAND“)
private String brand;
@Column(name = „VALIDITY“)
private Date validity;
}


es wird immer noch nur Admin Tabelle gezeigt

kann mir niemand einen kurzen Tipp geben?

zu:

in User hast du doch das @Id bei einem Attribut?

    @Column( name = "USERNAME")
    private String username;```

welche Zweck sollte es haben, @Id einfach so in die Klasse zu schreiben?
eine Enum dann zu vermuten/ zu erfordern klingt nach einem unerwartet intelligenten Reparatur-Vorschlag dazu,
die Elemente wären dann für sich bekannte Dinge, für sich Id..

-----

allgemein zu deinen Vererbungen/ automatisch erzeugten Tabellen kann ich nichts sagen,
meine Philospohie: Technologie so einfach wie möglich halten, etwa DB-Schema selber anlegen, 
Klassen dazu passend mappen, evtl. auch ohne Vererbung,
höheres nur dann versuchen wenn messerscharfe Tutorials mit funktionierenden Beispielen vorhanden

aber das muss natürlich nicht zufriedenstellend sein ;)

In User habe ich Id aber ich dachte das ist id für Personen , aber Zahlungen soll doch eigene Id haben. Ich war schon ganz sicher, dass du den Grund wissen wurdest, warum Tabellen nicht erzeugt werden

Das war, dass ich nur com.vb.model.Admin registriert hatte. als ich com.vb.model.Customer eingefügt habe hatte ich wegen den Objekt private Payment payment; Probleme und nachdem ich diesen Objekt gelöscht habe, wurde Customer Tabelle auch erzeugt. jetzt hilft mir @OneToOne(fetch = FetchType.LAZY) @PrimaryKeyJoinColumn private Payment payment; auch nicht, aber ich werde mich noch schlauer machen, wie onetoone Beziehung funktioniert
[XML]



com.vb.model.Customer
com.vb.model.Payment
com.vb.model.Admin
com.vb.model.User

[/XML]