java - Spring Data Solr : Unable to locate Attribute from Repository -


this working fine until manage migrate spring boot.

before using version spring-data-solr version : 1.4.0.release , boot got version 1.3.3.

i tried remove spring-boot-starter-data-solr , reset static definition got same issue..

update current pom.xml :

 <project>         <parent>             <groupid>org.springframework.boot</groupid>             <artifactid>spring-boot-starter-parent</artifactid>             <version>1.2.5.release</version>         </parent>  <repositories>         <repository>             <id>excilys-release</id>             <url>http://repository.excilys.com/content/repositories/releases</url>         </repository>          <repository>             <id>repo2_maven_org</id>             <url>http://repo2.maven.org/maven2</url>         </repository>          <repository>             <id>maven-restlet</id>             <url>http://maven.restlet.com</url>         </repository>     </repositories>     <dependencies>              <!-- spring boot -->             <dependency>                 <groupid>org.springframework.boot</groupid>                 <artifactid>spring-boot-starter-web</artifactid>             </dependency>              <dependency>                 <groupid>org.springframework.boot</groupid>                 <artifactid>spring-boot-starter-data-jpa</artifactid>             </dependency>              <dependency>                 <groupid>org.springframework.boot</groupid>                 <artifactid>spring-boot-starter-security</artifactid>             </dependency>              <dependency>                 <groupid>org.springframework.boot</groupid>                 <artifactid>spring-boot-starter-websocket</artifactid>             </dependency>              <dependency>                 <groupid>org.springframework.boot</groupid>                 <artifactid>spring-boot-starter-test</artifactid>             </dependency>              <dependency>                 <groupid>org.springframework.boot</groupid>                 <artifactid>spring-boot-starter-actuator</artifactid>             </dependency>              <dependency>                 <groupid>org.springframework.boot</groupid>                 <artifactid>spring-boot-starter-data-solr</artifactid>             </dependency>              <dependency>                 <groupid>org.springframework.boot</groupid>                 <artifactid>spring-boot-configuration-processor</artifactid>                 <optional>true</optional>             </dependency>              <!-- spring solr -->             <dependency>                 <groupid>org.apache.solr</groupid>                 <artifactid>solr-core</artifactid>                 <version>4.10.0</version>                 <exclusions>                     <exclusion>                         <groupid>org.slf4j</groupid>                         <artifactid>slf4j-jdk14</artifactid>                     </exclusion>                     <exclusion>                         <artifactid>log4j</artifactid>                         <groupid>log4j</groupid>                     </exclusion>                 </exclusions>             </dependency>     </project> 

my current solrconfig.java :

@configuration @enablesolrrepositories(basepackages = "com.repository.solr") @componentscan("com.repository.solr") public class solrconfig {      private final logger logger = loggerfactory.getlogger(this.getclass());      public static final string property_solr_server_core  = "solr.core";      @resource     private environment environment;     @resource ogcparameters ogcparameters;      @bean     public solrserver solrserver() {         final ogcparameters.slr slr = ogcparameters.slr();         if (!environment.containsproperty(property_solr_server_core)) {             logger.warn("you running on default solr core, create or edit application.properties avoid behaviour");         }          string solrhostwithcoreifnecessary = slr.host()                 .concat(slr.core());          return new httpsolrserver(solrhostwithcoreifnecessary);     }      @bean     public solroperations solrtemplate() throws parserconfigurationexception, saxexception, ioexception {         return new solrtemplate(solrserver());     } } 

my current solrrepository.java :

@repository public interface documentsolrrepository extends solrcrudrepository<document, long>, documentsolrrepositorycustom {     set<document> findbytextcontaining(@param("text") string test); } 

my current entity using @field attribute binded solrrepository field causes server start fail :

@entity @jsonignoreproperties(ignoreunknown = true) public class document {      private long id;     @id     @generatedvalue(strategy=generationtype.sequence, generator="document_seq")     @sequencegenerator(name="document_seq", sequencename="document_seq")     public long getid() {         return id;     }     public document setid(long id) {         this.id = id;         return this;     }     /* solr specific fields */     @field("text")     private string text;     @transient @jsonignore     public string gettext() {         return text;     }     public document settext(string text) {         this.text = text;         return this;     } } 

the error log stacktrace :

exception in thread "main" org.springframework.beans.factory.beancreationexception: error creating bean name 'applicantcontroller': injection of resource dependencies failed;  caused by: java.lang.illegalargumentexception: unable locate attribute  the given name [text] on managedtype [com.entity.document]     @ org.hibernate.jpa.internal.metamodel.abstractmanagedtype.checknotnull(abstractmanagedtype.java:144)     @ org.hibernate.jpa.internal.metamodel.abstractmanagedtype.getattribute(abstractmanagedtype.java:130)     @ org.springframework.data.jpa.repository.query.queryutils.toexpressionrecursively(queryutils.java:475)     @ org.springframework.data.jpa.repository.query.jpaquerycreator$predicatebuilder.build(jpaquerycreator.java:199)     @ org.springframework.data.jpa.repository.query.jpaquerycreator.topredicate(jpaquerycreator.java:146)     @ org.springframework.data.jpa.repository.query.jpaquerycreator.create(jpaquerycreator.java:86)     @ org.springframework.data.jpa.repository.query.jpaquerycreator.create(jpaquerycreator.java:44)     @ org.springframework.data.repository.query.parser.abstractquerycreator.createcriteria(abstractquerycreator.java:109)     @ org.springframework.data.repository.query.parser.abstractquerycreator.createquery(abstractquerycreator.java:88)     @ org.springframework.data.repository.query.parser.abstractquerycreator.createquery(abstractquerycreator.java:73)     @ org.springframework.data.jpa.repository.query.parttreejpaquery$querypreparer.<init>(parttreejpaquery.java:110)     @ org.springframework.data.jpa.repository.query.parttreejpaquery$countquerypreparer.<init>(parttreejpaquery.java:230)     @ org.springframework.data.jpa.repository.query.parttreejpaquery.<init>(parttreejpaquery.java:64)     @ org.springframework.data.jpa.repository.query.jpaquerylookupstrategy$createquerylookupstrategy.resolvequery(jpaquerylookupstrategy.java:94)     ... 68 more 

you don't need exclude or add additional dependency. instead define version used spring-data projects using properties follows:

<parent>     <groupid>org.springframework.boot</groupid>     <artifactid>spring-boot-starter-parent</artifactid>     <version>1.2.5.release</version> </parent>  <properties>     <spring-data-releasetrain.version>fowler-sr2</spring-data-releasetrain.version> </properties>  <dependencies>     ...     <dependency>         <groupid>org.springframework.boot</groupid>         <artifactid>spring-boot-starter-data-solr</artifactid>     </dependency>     ... </dependencies> 

nothing else needed. way, fowler-sr2 released 28.07 (its still hot).


Comments

Popular posts from this blog

javascript - Karma not able to start PhantomJS on Windows - Error: spawn UNKNOWN -

Nuget pack csproj using nuspec -

c# - Display ASPX Popup control in RowDeleteing Event (ASPX Gridview) -