Hallo,
ich arbeite zur Zeit das erste mal an einem kleinen Projekt mit Hibernate. Ich nutze dazu den MySQL Server 5.1.
Mein Projekt funktioniert so weit eigentlich. Ich habe das Datenbankschema, die Hibernate MappingFiles und dazugehörigen JavaBeans per Hand geschrieben.
Nun wollte ich überprüfen, ob meine HibernateKonfiguration vollständig ist und habe mir mit generateSchemaCreationScript das Datenbankschema ausgeben lassen, das meine HibernateKonfiguration selbstständig erzeugen würde. Dabei ist mir aufgefallen, dass die Foreign Keys fehlen.
Meine PKs und FKs habe ich natürlich in meinen create table Befehlen angegeben, deshalb funktioniert mein Projekt ja auch. Es kommt mit allerdings sicherer vor, wären die FKs auch in den Hibernate Mapping Files angegeben. Nun bin ich doch relativ erfahrungslos was die Arbeit mit Datenbanken angeht und brauche deshalb etwas Hilfe.
Ich poste hier mal einen Ausschnitt meiner DB:
users(username, password, enabled) --> PK: username
authorities(username, authority) --> PK: username, FK: username mit Referenz auf users(username)
userinformation(email, username, country) --> PK: email, FK: username (users(username)) und country (countries(country))
countries(id, country) --> PK: id
Ich habe schon viel nachgelesen, aber bin noch nicht so viel schlauer daraus geworden. Um meine HibernateKonfiguration nun berichtigen zu können müsste ich wohl erstmal verstehen, was für Beziehungen zwischen meinen Tabellen herrschen (1:1, 1:N, N:M), denn ich habe gesehen, dass bei Hibernate die Beziehungen zwischen Tabellen so dargestellt werden. Leider komme ich damit nicht weiter.
Beispiel users und authorities: Ein User hat eine authority, eine authority kann mehrere User haben... das stimmt ja schon nicht so ganz, weil es ja keine Tabelle von "authority" gibt sondern "username und authority" ja schon in der Tabelle vorhanden sind.
In der Tabelle selber hat ein username eine authority-rolle und eine authority-rolle kann von mehrere usern besessen werden. also ist innerhalb der tabelle eine 1:N Beziehung???? Verstehe ich nicht so ganz :-(
Meine Frage ist also erstmal: Wie ist das bei meinen Tabellen mit den Beziehungen (und wie füge ich das dann in Hibernate ein?)
Für eine Antwort wäre ich sehr dankbar!
ich arbeite zur Zeit das erste mal an einem kleinen Projekt mit Hibernate. Ich nutze dazu den MySQL Server 5.1.
Mein Projekt funktioniert so weit eigentlich. Ich habe das Datenbankschema, die Hibernate MappingFiles und dazugehörigen JavaBeans per Hand geschrieben.
Nun wollte ich überprüfen, ob meine HibernateKonfiguration vollständig ist und habe mir mit generateSchemaCreationScript das Datenbankschema ausgeben lassen, das meine HibernateKonfiguration selbstständig erzeugen würde. Dabei ist mir aufgefallen, dass die Foreign Keys fehlen.
Meine PKs und FKs habe ich natürlich in meinen create table Befehlen angegeben, deshalb funktioniert mein Projekt ja auch. Es kommt mit allerdings sicherer vor, wären die FKs auch in den Hibernate Mapping Files angegeben. Nun bin ich doch relativ erfahrungslos was die Arbeit mit Datenbanken angeht und brauche deshalb etwas Hilfe.
Ich poste hier mal einen Ausschnitt meiner DB:
users(username, password, enabled) --> PK: username
authorities(username, authority) --> PK: username, FK: username mit Referenz auf users(username)
userinformation(email, username, country) --> PK: email, FK: username (users(username)) und country (countries(country))
countries(id, country) --> PK: id
Ich habe schon viel nachgelesen, aber bin noch nicht so viel schlauer daraus geworden. Um meine HibernateKonfiguration nun berichtigen zu können müsste ich wohl erstmal verstehen, was für Beziehungen zwischen meinen Tabellen herrschen (1:1, 1:N, N:M), denn ich habe gesehen, dass bei Hibernate die Beziehungen zwischen Tabellen so dargestellt werden. Leider komme ich damit nicht weiter.
Beispiel users und authorities: Ein User hat eine authority, eine authority kann mehrere User haben... das stimmt ja schon nicht so ganz, weil es ja keine Tabelle von "authority" gibt sondern "username und authority" ja schon in der Tabelle vorhanden sind.
In der Tabelle selber hat ein username eine authority-rolle und eine authority-rolle kann von mehrere usern besessen werden. also ist innerhalb der tabelle eine 1:N Beziehung???? Verstehe ich nicht so ganz :-(
Meine Frage ist also erstmal: Wie ist das bei meinen Tabellen mit den Beziehungen (und wie füge ich das dann in Hibernate ein?)
Für eine Antwort wäre ich sehr dankbar!