执行hql语句的时候遇到了如下错误:
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v1.5.2.RELEASE)
2017-05-03 15:56:14.462 ERROR 16203 --- [ main] o.h.hql.internal.ast.ErrorCounter : line 1:49: unexpected token: b
2017-05-03 15:56:14.467 ERROR 16203 --- [ main] o.h.hql.internal.ast.ErrorCounter : line 1:49: unexpected token: b
....
Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: b near line 1, column 49 [select b from cn.peakline.model.Blog as b where b.delete='0']
at org.hibernate.hql.internal.ast.QuerySyntaxException.convert(QuerySyntaxException.java:74) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.hql.internal.ast.ErrorCounter.throwQueryException(ErrorCounter.java:91) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:288) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:187) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:142) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:115) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:76) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:150) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.internal.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:302) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.internal.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:240) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.internal.SessionImpl.createQuery(SessionImpl.java:1894) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.jpa.spi.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:291) ~[hibernate-entitymanager-5.0.12.Final.jar:5.0.12.Final]
... 64 common frames omitted
dao层方法如下:
@Query( "select b from Blog as b where b.elete='0'")
List<Blog> queryAllBlogs(Pageable pageable);
blog的对应类如下:
@Entity
@Table(name = "t_blog")
@Data
@Accessors(chain = true)
public class Blog {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
@NotNull
private Integer userId;
@NotNull
private String title;
private String content;
@Column(name = "is_delete")
private String delete;
private Date createDate;
private Date modifiedDate;
}
经过排查发现是因为delete字段的原因,只要不用delete最为字段名就OK了,还是不太明白咋回事,希望大神解答