1. 程式人生 > >通用Mapper,出現sql關鍵字衝突

通用Mapper,出現sql關鍵字衝突

通用mapper的使用,減少了大量操作,提高了工作效率,在使用通用mapper 時,mysql表裡有和sql保留關鍵字相同的欄位

在定義實體類時,通過定義駝峰命名的屬性名,實現自動對映,可是在入庫操作過程中報出sql語法錯誤,如:

into test_table (id,name,desc,password) values (?,?,?,?)

這樣的語句裡面還有sql關鍵字desc,一般出現這種情況,我們通常會在desc上加上 ``(轉移符,位置在tab鍵上方)就可以了,如:

insert into test_table (id,name,`desc`,password) values (?,?,?,?)

對於這樣的關鍵字衝突這樣處理就沒有問題了。。。

可是我們用的是通用mapper,基本的CURD語句都不用手寫,那如果在用通用mapper的時候出現關鍵字衝突的話,該怎麼辦呢?

只需在該表對應實體類中的desc屬性上加上JPA註解@Column(name = "`desc`")

比如:

@Column(name = "`desc`")

private String desc;

這樣通用mapper會自動生成插入語句

insert into test_table (id,name,`desc`,password) values (?,?,?,?)

 

問題解決。。。