Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So ordnen Sie ein Entitätsfeld zu, dessen Name ein reserviertes Wort in JPA ist

Mit Hibernate als JPA 1.0-Anbieter können Sie ein reserviertes Schlüsselwort maskieren, indem Sie es in Backticks einschließen:

@Column(name="`open`")

Dies ist die von Hiberate Core geerbte Syntax:

5.4. SQL-Bezeichner in Anführungszeichen

Sie können Hibernate dazu zwingen, einen Bezeichner in der generierten SQL in Anführungszeichen zu setzen, indem Sie den Tabellen- oder Spaltennamen im Mapping-Dokument in Backticks einschließen. Hibernate verwendet den korrekten Anführungsstil für den SQL-Dialekt. Dies sind normalerweise doppelte Anführungszeichen, aber der SQL-Server verwendet Klammern und MySQL verwendet Backticks /P>

<class name="LineItem" table="`Line Item`">
    <id name="id" column="`Item Id`"/><generator class="assigned"/></id>
    <property name="itemNumber" column="`Item #`"/>
    ...
</class>

In JPA 2.0 ist die Syntax standardisiert und wird zu:

@Column(name="\"open\"")

Referenzen

  • Ruhezustand-Referenzhandbuch
    • 5.4. SQL-Bezeichner in Anführungszeichen
  • JPA 2.0-Spezifikation
    • 2.13 Benennung von Datenbankobjekten

Verwandte Fragen

  • Ruhezustand, MySQL und Tabelle namens „Repeat“ – seltsames Verhalten
  • Automatisches Maskieren von reservierten Wörtern für Hibernate-Tabellen und -Spalten