当我创建一个类似 name
或 password
在postgresql 13中也是如此。postgresql可能会将其视为保留关键字。因此,mybatis sql希望:
INSERT INTO apple_server_notification_record (created_time, updated_time, notification_type, auto_renew_product_id, auto_renew_status, auto_renew_status_change_date, auto_renew_status_change_date_ms, auto_renew_status_change_date_pst, environment, `password`, bid, bvrs) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
它将自动在sql中添加``。但在postgresql 13中执行sql时,显示以下错误:
org.springframework.jdbc.BadSqlGrammarException:
### Error updating database. Cause: org.postgresql.util.PSQLException: ERROR: syntax error at or near "`"
Position: 249
### The error may exist in class path resource [mybatis/mapper/dolphin/AppleServerNotificationRecordMapper.xml]
### The error may involve com.dolphin.soa.post.dao.AppleServerNotificationRecordMapper.insertSelective-Inline
### The error occurred while setting parameters
### SQL: INSERT INTO apple_server_notification_record (created_time, updated_time, notification_type, auto_renew_product_id, auto_renew_status, auto_renew_status_change_date, auto_renew_status_change_date_ms, auto_renew_status_change_date_pst, environment, `password`, bid, bvrs) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
### Cause: org.postgresql.util.PSQLException: ERROR: syntax error at or near "`"
Position: 249
; bad SQL grammar []; nested exception is org.postgresql.util.PSQLException: ERROR: syntax error at or near "`"
Position: 249
我可以通过更改列来解决它 password
到 apple_auth_password
,我知道它会解决问题。但在我的代码中,我必须在从apple接收请求时显式转换Map。我的实体定义如下:
private String password;
有什么好的建议来解决这个问题吗?遇到这个问题你会怎么做?
暂无答案!
目前还没有任何答案,快来回答吧!