2012-12-05 2 views
0

Мой Entity классаКак бороться JPA/JPQL с SQL Server по ключевым словам

@Entity 
class MasterStccycode{ 
    private static final long serialVersionUID = 1L; 
    @Id 
    @Basic(optional = false) 
    @NotNull 
    @Size(min = 1, max = 3) 
    @Column(name = "CODE") 
    private String code; 

    @Size(max = 100) 
    @Column(name = "DESC") 
    private String desc; 
} 

мой JPA Query SELECT t.code, t.desc FROM MasterStccycode t

тогда я это следующее исключение

Исключение [EclipseLink-4002] (Eclipse Persistence Services - 2.3.0.v20110604-r9504): org.eclipse.persistence.exceptions.DatabaseException

Внутреннее исключение: com.microsoft.sqlserver.jdbc.SQLServerException: неправильный синтаксис рядом с ключевым словом «DESC».

Код

Ошибка: 156

Вызов: ВЫБОР КОДА, DESC ОТ master_stccycode запросов: ReportQuery (referenceClass = MasterStccycode SQL = "SELECT CODE, DESC FROM master_stccycode")

Я знаю, что решение обернуть ключевое слово DESC[] в [DESC], но как я могу это сделать на JPA QL?

ответ

1

DESC - это зарезервированное слово в большинстве баз данных. Вы должны переименовать это поле.

Вы также можете указать поле, но просто переименовать его было бы лучше.

@Column(name = "\"DESC\"") 
Смежные вопросы