当前使用版本(必填,否则不予处理)
3.5.2
该问题是如何引起的?(确定最新版也有问题再提!!!)
表名为 order,使用 orderMapper.insert(order) 方法的时候发生 SQL 语法错误。
原因就在 order 是 sql 的关键字,在 sql 中使用 order 做表名需要加上 ` ` 才能正常使用,像这样: `order`。
重现步骤(如果有就写完整)
设置表名 order 然后使用 orderMapper.insert(order) 方法,其中 order 是已经属性赋值的实体对象引用。
报错信息
### SQL: INSERT INTO order ( user_id, goods_id, delivery_addr_id, goods_name, goods_count, goods_price, order_channel, status, create_date ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ? )
### Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'order ( user_id,
goods_id,
delivery_addr_id,
goods_name,
goods_count,
goods_pri' at line 1
提问
请问为什么不在拼接 SQL 的时候加上 `` 呢?
请问除了换表名和自己手动写 SQL 之外还有解决办法吗?
请问这样的做法是基于其他考虑吗?
Comment From: wakakaxz
我一拍脑门。。。找到解决办法了:
在实体类的 @TableName(value ="order") 加上 `` 就 ok 了,像这样: @TableName(value ="order")
Comment From: wakakaxz
后来看了下 closed 里面已经有了,不好意思打扰了!