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

にマッピングされていない、私は上記の@queryを行うことができます。しかし、それは私に原因を与えます:org.hibernate.hql.internal.ast.QuerySyntaxException:トピックがマップされていないエラーです。@query:org.hibernate.hql.internal.ast.QuerySyntaxException:トピックは春の資料によると、エラー

ただし、これを行うと動作します。

@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データベースを使用しています。私は理由を知る必要があります。私はあなたに感謝を助けてください。

+0

@Entityアノテーションを使用してトピックのJavaクラス注釈を付けていますか? –

+0

@premkumarはいそれは – Desmond

+1

です...おそらくあなたのエンティティパッケージスキャンは起こっていません。意味のあるリポジトリはスキャンされますが、エンティティはスキャンされません –

答えて

0

あなたはJPQLクエリを使用している場合、そのように、代わりの位置のparamsに頼るので、注釈を付けるとあなたのparamに名前を付けてみてください。

@Query(value = "SELECT u from topic u where u.name = :name") 
List<Topic> findEverything(@Param("name")String name); 
関連する問題