Hi!
Es sind 2 Tabellen gegeben, die eine N:1-Relation haben:
Produkte_n --------------------------------- 1_Hersteller
Ich kann mir problemlos via Java-Code die beiden Tabelle in meiner DB erzeugen lassen.
Ich möchte hierbei, dass wenn ein Hersteller gelöscht wird, auch all seine Produkte entfernt werden.
Da die Tabelle Produkte einen FS auf Hersteller hat, benötige ich quasi bei der Tabellenerzeugung: 'On Delete Cascade'.
Der entsprechende relevante Code in der "Java-Produkte-Klasse", der mir dann die Tabelle in meiner DB erzeugen soll, müsste doch folgender sein:
Wenn ich mir dann aber in der DB angucke, wie die Tabelle Produkte erstellt worden ist, steht da an relevanter Stelle:
Wir wollen ja 'ON DELETE CASCADE' haben - wieso erzeugt mein Java-Code nicht die Tabelle so, obwohl ich im Java-Code ' 'ON DELETE CASCADE'' mittels Verwendung von ' CascadeType.REMOVE' an entsprechender Stelle instruiert habe?
Hat hier evtl. Jemand eine Idee?
Lg
Zrebna
Es sind 2 Tabellen gegeben, die eine N:1-Relation haben:
Produkte_n --------------------------------- 1_Hersteller
Ich kann mir problemlos via Java-Code die beiden Tabelle in meiner DB erzeugen lassen.
Ich möchte hierbei, dass wenn ein Hersteller gelöscht wird, auch all seine Produkte entfernt werden.
Da die Tabelle Produkte einen FS auf Hersteller hat, benötige ich quasi bei der Tabellenerzeugung: 'On Delete Cascade'.
Der entsprechende relevante Code in der "Java-Produkte-Klasse", der mir dann die Tabelle in meiner DB erzeugen soll, müsste doch folgender sein:
Java:
@ManyToOne(cascade = CascadeType.REMOVE)
@JoinColumn(name = "hersteller_id")
private Hersteller hersteller;
Wenn ich mir dann aber in der DB angucke, wie die Tabelle Produkte erstellt worden ist, steht da an relevanter Stelle:
SQL:
CONSTRAINT fk8yi7co4ourgbjormifhwkcn51hf FOREIGN KEY (hersteller_id)
REFERENCES public.produkte (id) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION,
Wir wollen ja 'ON DELETE CASCADE' haben - wieso erzeugt mein Java-Code nicht die Tabelle so, obwohl ich im Java-Code ' 'ON DELETE CASCADE'' mittels Verwendung von ' CascadeType.REMOVE' an entsprechender Stelle instruiert habe?
Hat hier evtl. Jemand eine Idee?
Lg
Zrebna