sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man mappar ett entitetsfält vars namn är ett reserverat ord i JPA

Med Hibernate som JPA 1.0-leverantör kan du undkomma ett reserverat sökord genom att omsluta det inom backticks:

@Column(name="`open`")

Det här är syntaxen som ärvts från Hiberate Core:

5.4. SQL-citattecken

Du kan tvinga Hibernate att citera en identifierare i den genererade SQL genom att stänga tabell- eller kolumnnamnet inbackticks i mappningsdokumentet. Hibernate kommer att använda den korrekta citatstilen för SQL Dialect. Detta är vanligtvis dubbla citattecken, men SQL-servern använder hakparenteser och MySQLuses backsticks.

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

I JPA 2.0 är syntaxen standardiserad och blir:

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

Referenser

  • Referensguide för viloläge
    • 5.4. SQL-citerade identifierare
  • JPA 2.0-specifikation
    • 2.13 Namngivning av databasobjekt

Relaterade frågor

  • Hibernate, MySQL och tabell med namnet "Repeat" - konstigt beteende
  • Automatisk escapening av reserverade ord för Hibernate-tabeller och -kolumner


  1. Hur man visar alla Oracle Database-privilegier för en användare

  2. Hur ser jag alla främmande nycklar till en tabell eller kolumn?

  3. Hur man extraherar veckonummer från ett datum i PostgreSQL

  4. hur man kommer åt kommandoraden för xampp på Windows