原创

springboot集成solr时遇到的坑

做一个网络电视频道检索的项目!

在存储数据到solr中时候,被检索的字段有可能有全英文 有可能有全中文的,于是我在solr的实体类中定义了

@Field("title_cn") // 直接指定与 Solr 字段对应的名称
    private String titleCn;

    @Field("title_en")
    private String titleEn;

这两个字段。

然后定义SolrIptvRepository的时候就遇到了坑

@Repository
public interface SolrIptvRepository extends SolrCrudRepository<IptvForSolr,String> {
    List<IptvForSolr><i><font color="#c24f4a"> findByName</font></i>(String name);
}

上面的代码我在启动项目时一直报“Caused by: org.springframework.data.mapping.PropertyReferenceException: No property name found for type IptvForSolr!”这个错误。

经过多方查询和试验后,方法命中By 后面得根据真实字段命名。。。不然就会报错!!!

@Repository
public interface SolrIptvRepository extends SolrCrudRepository<IptvForSolr,String> {
    List<IptvForSolr> <font color="#8baa4a">findByTitle</font>(String titleCn);
}

solr 我真是又爱又恨啊!!! 

总结:继承SolrCrudRepository的Repository中查找方法必须By真实字段!!!!!

正文到此结束