8

I have used in my java DAO class which contains Space in between LANG PREF

 @Column(name = "LANG PREF")
  private String langprefid;

Once my java class runs, I am getting

org.hibernate.exception.SQLGrammarException: Incorrect syntax near the keyword 'as'.

Can anyone help me regarding this problem?

Vlad Mihalcea
  • 142,745
  • 71
  • 566
  • 911
user2563648
  • 87
  • 2
  • 4
  • You should rather change the name of the column itself. It's just bad practice to have spaces in column names. – saran3h Apr 13 '20 at 11:30

2 Answers2

17

Manually escaping the reserved keywords

If you're using Hibernate native API, then you can escape them using backticks:

@Column(name = "`LANG PREF`")

If you are using JPA, you can escape with double quotes:

@Column(name = "\"LANG PREF\"")

Automatically escaping reserved keywords

If you want to automatically scape reserved keywords, you can set to true the Hibernate-specific hibernate.globally_quoted_identifiers configuration property:

<property
    name="hibernate.globally_quoted_identifiers"
    value=true"
/>
Vlad Mihalcea
  • 142,745
  • 71
  • 566
  • 911
-2

You can change your code to

import javax.persistence.Column;
@Column(name = "LANG_PREF")
private String langprefid;
Vishwas
  • 78
  • 1
  • 6