jpa query 表别名问题
我写了这么一条sql:
@Query("select com from Comment com where com.status LIKE ?1 and com.commentDt > ?2 and com.commentDt< ?3 and( com.product IN(select pro from Produce pro where pro.name LIKE ?4) or (com.activity in(select act from Activity act where act.title like ?4)) or (com.solution in (select sol from Solution sol where sol.name like ?4 )))")运行的时候报错如下:
used by: java.lang.IllegalArgumentException: org.hibernate.QueryException: could not resolve property: dc of: com.dc.flamingo.dccloud.entity.Comment [select com from com.dc.flamingo.dccloud.entity.Comment com where com.status LIKE ?1 and com.commentDt > ?2 and com.commentDt< ?3 and( com.product IN(select pro from com.dc.flamingo.dccloud.entity.Produce pro where pro.name LIKE ?4) or (com.activity in(select act from com.dc.flamingo.dccloud.entity.Activity act where act.title like ?4)) or (com.solution in (select sol from com.dc.flamingo.dccloud.entity.Solution sol where sol.name like ?4 )))]
at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1750)
at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1677)
at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1683)
at org.hibernate.jpa.spi.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:331)
at sun.reflect.GeneratedMethodAccessor55.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.springframework.orm.jpa.ExtendedEntityManagerCreator$ExtendedEntityManagerInvocationHandler.invoke(ExtendedEntityManagerCreator.java:366)
at com.sun.proxy.$Proxy44.createQuery(Unknown Source)
at org.springframework.data.jpa.repository.query.SimpleJpaQuery.validateQuery(SimpleJpaQuery.java:78)
... 52 more
当我把Comment表别名改成“c”就不再报错了,请路过的大牛指点一下。