OpenJPA Zeichenvorrat in DB & Fremdschlüssel ohne Entität

Demli

Mitglied
Guten Tag,

ich würde gerne OpenJPA in einem Projekt von mir einsetzen und bin dabei leider auf einige Hürden gestoßen, zu denen ich noch nichts im Web gefunden habe.
Um meine Fragen besser nachvollziehen zu können möchte ich an dieser Stelle noch erwähnen, dass ich mir gern das Feature zu Nutze machen würde, welches OpenJPA die Datenbanktabellen automatisch anlegen lässt.

Einige meiner Entitäten haben String-Attribute. Nun würde ich gern den Zeichenvorrat für diese Attribute genau festlegen, habe bisher aber keine Konfigurationsmöglichkeit gefunden die mir das ermöglicht. Da wollte ich nun fragen ob es denn überhaupt möglich ist und wenn ja wie?

Meine zweite Frage ist ob es möglich ist einen Fremdschlüssel in einer Entität zu definieren ohne das eine equivalente Entität existiert auf die verlinkt werden kann. Ich möchte einer Entität einen Eintrag aus einer Tabelle zuordnen die bereits existiert und über 70 Attribute hat, zu dieser würde also nur sehr ungern eine entsprechende Entitätsklasse erstellen. Mir ist klar das ich auch einfach ein Integer-Feld deklarieren könnte um ihn dann mit dem entsprechenden Schlüsselwert aus der Datenbank zu füllen, nur hätte ich gern, dass in der Datenbank trotzdem ein entsprechender Constraint angelegt wird, der dieses Attribut als Fremdschlüssel definiert. Ist das möglich?
 

mrBrown

Super-Moderator
Mitarbeiter
Einige meiner Entitäten haben String-Attribute. Nun würde ich gern den Zeichenvorrat für diese Attribute genau festlegen, habe bisher aber keine Konfigurationsmöglichkeit gefunden die mir das ermöglicht. Da wollte ich nun fragen ob es denn überhaupt möglich ist und wenn ja wie?
Was ist für dich der "Zeichenvorrat"? Die Kodierung oder die Größe der Spalte?

Meine zweite Frage ist ob es möglich ist einen Fremdschlüssel in einer Entität zu definieren ohne das eine equivalente Entität existiert auf die verlinkt werden kann. Ich möchte einer Entität einen Eintrag aus einer Tabelle zuordnen die bereits existiert und über 70 Attribute hat, zu dieser würde also nur sehr ungern eine entsprechende Entitätsklasse erstellen. Mir ist klar das ich auch einfach ein Integer-Feld deklarieren könnte um ihn dann mit dem entsprechenden Schlüsselwert aus der Datenbank zu füllen, nur hätte ich gern, dass in der Datenbank trotzdem ein entsprechender Constraint angelegt wird, der dieses Attribut als Fremdschlüssel definiert. Ist das möglich?
Afaik musst du nicht alle Felder in der Datenbank in einer Entity angeben, in deinem Fall dürfte die ID als einziges Feld der Entity reichen. Dann kannst du es ganz normal als *To* angeben.

Solltest du aber einmal vorher testen, ich weiß nicht wie gut das mit dem Erstellen des Schemas dann klappt...
 

Demli

Mitglied
Danke schonmal für die schnelle Antwort.
Mit Zeichenvorrat meinte ich eigentlich die Größe der Spalte, in der Datenbank kann ich ja angeben wieviele Zeichen innerhalb eines Feldes abgelegt werden können, z.B. varchar(20).
 

mrBrown

Super-Moderator
Mitarbeiter
Bei den Annotationen würde ich mich strikt an die JPA-Spezifikation halten und OpenJPA-spezifische Dinge möglichst vermeiden
 

Ähnliche Java Themen


Oben