org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: * near line 1, column 8 [SELECT * FROM person p WHERE p.id = (SELECT max(p2.id) FROM person p2)]
异常原因: SQL语句出现了错误,
错误写法:
@Query(value="SELECT p FROM person p WHERE p.id = (SELECT max(p2.id) FROM person p2)")
public Person getByMaxIdPerson();
person是表名,因为此时不是原生的sql写法,所以会出现错误,
将person改成对应的实体类名
正确写法:
@Query(value="SELECT p FROM Person p WHERE p.id = (SELECT max(p2.id) FROM Person p2)")
public Person getByMaxIdPerson();
又或者加上nativeQuery=true;sql此时为原生的数据库写法
@Query(value="SELECT p FROM person p WHERE p.id = (SELECT max(p2.id) FROM person p2)",nativeQuery=true)
public Person getByMaxIdPerson();