Frage

Ich habe eine Entity-Klasse namens „Gruppe“ und NetBeans warnt mich „Der Entität Tabellenname ist ein reserviertes Java Persistence QL Schlüsselwort“.

Ein ähnlicher Fall wäre die Verwendung von reservierten SQL-Schlüsselwort sein.

Wird dieser Name entgangen sein? Würde die Verwendung eines anderen Tabellennamen das Problem @Table (name = „other“) lösen. Oder sollte ich die Klasse umbenennen?

War es hilfreich?

Lösung

  

Wird dieser Name entgangen sein?

Es ist nichts in der JPA-Spezifikation, das so sagt, wenn Ihr Provider der Fall ist, ist dieser Anbieter spezifisch.

  

würde die Verwendung eines anderen Tabellennamen lösen das Problem @Table (name = "other")

Natürlich wäre es (solange Sie kein anderes reserviertes Schlüsselwort natürlich verwenden). Aber wenn Sie einen JPA 2.0-Provider verwenden, gibt es eine Standardmethode einen db Objektname entkam, mit doppelten Anführungszeichen zu bekommen:

@Table(name="\"Group\"")

In JPA 1.0, gibt es nichts, Standard, es hängt von Ihren JPA-Provider. Zum Beispiel, Hibernate verwendet Backticks:

@Table(name="`Group`")
  

Oder soll ich die Klasse umbenennen?

Nein. Der Tabellenname eines Unternehmens hat standardmäßig die Einheit Name, aber Sie können es steuern die @Table Anmerkung verwenden, wie wir gesehen haben. Es besteht also keine Notwendigkeit, die Klassennamen Ihres Unternehmens zu ändern.

Andere Tipps

Sie müssen nicht die Klasse umbenennen - und Sie sollten nicht - der Name, den Sie gewählt haben, spiegelt Ihre Domain in der besten Art und Weise, und Sie sollten es nicht aufgrund von Einschränkungen Werkzeug oder Rahmen ändern, falls das Werkzeug / Framework bietet eine Möglichkeit, den „Kampf“ zu vermeiden. JPA bietet eine solche Art und Weise.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top