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