@Query引起:org.hibernate.hql.internal.ast.QuerySyntaxException:主题未映射错误

时间:2017-06-05 14:12:49

标签: java spring

@Repository
public interface TopicRepository extends CrudRepository<Topic, String>{ 
    @Query(value = "SELECT u from topic u where u.name = ?1")
    List<Topic> findEverything(String name);
}

根据spring文档,我可以做上面的@query。但是,它给我的原因是:org.hibernate.hql.internal.ast.QuerySyntaxException:topic未映射错误。

但是,当我在下面执行此操作时,它可以正常工作。

@Repository
public interface TopicRepository extends CrudRepository<Topic, String>{
    @Query(value="SELECT * FROM topic WHERE topic.name = ?1", nativeQuery = true)
    List<Topic> findEverything(String name);
}

我正在使用mySQL数据库。我需要知道原因。请帮帮我谢谢。

1 个答案:

答案 0 :(得分:0)

如果您正在使用JPQL查询,请尝试注释并命名您的参数,而不是依赖于位置参数,如下所示:

@Query(value = "SELECT u from topic u where u.name = :name")
List<Topic> findEverything(@Param("name")String name);