当前使用版本(必填,否则不予处理)
3.5.3.1
该问题是如何引起的?(确定最新版也有问题再提!!!)
使用spring boot3 + queryWrapper
重现步骤(如果有就写完整)
用户表:
@Entity
@Data
@Table(name="`USER`")
public class User {
@Id
@GeneratedValue
private Integer id;
private String firstName;
private String lastName;
private Integer age;
private LocalDate birthday;
}
执行queryWrap查询
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("last_name", "Matthews");
result = userMapper.selectList(queryWrapper);
报错信息
org.springframework.jdbc.BadSqlGrammarException:
### Error querying database. Cause: org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "SELECT id,first_name,last_name,age,birthday FROM [*]user \000a \000a WHERE (last_name = ?)"; expected "identifier"; SQL statement:
SELECT id,first_name,last_name,age,birthday FROM user
WHERE (last_name = ?) [42001-214]
### The error may exist in com/linkcld/fw/test/user/UserMapper.java (best guess)
### The error may involve com.linkcld.fw.test.user.UserMapper.selectList
### The error occurred while executing a query
### SQL: SELECT id,first_name,last_name,age,birthday FROM user WHERE (last_name = ?)
### Cause: org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "SELECT id,first_name,last_name,age,birthday FROM [*]user \000a \000a WHERE (last_name = ?)"; expected "identifier"; SQL statement:
SELECT id,first_name,last_name,age,birthday FROM user
WHERE (last_name = ?) [42001-214]
; bad SQL grammar []
at com.linkcld.fw.test.user.UserRepositoryTest.sampleTestCase(UserRepositoryTest.java:75)
Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException:
Syntax error in SQL statement "SELECT id,first_name,last_name,age,birthday FROM [*]user \000a \000a WHERE (last_name = ?)"; expected "identifier"; SQL statement:
SELECT id,first_name,last_name,age,birthday FROM user
Comment From: qmdx
h2 不能用 user
Comment From: jackxu2011
h2 不能用 user
这个user加了转译,用spring boot 2 + mybatis plus没有问题。
Comment From: jackxu2011
我换一个表名试试
Comment From: jackxu2011
h2 不能用 user
换一个表名可以了,有可能是h2的版本问题。