Spring Hibernate won't implement Repository Class from Interface -
i have 2 separate projects. 1 project contains application logic , controllers in org.patrick.application
, , 1 separate project contains hibernate entities, dao, , models in org.patrick.hibernate
. problem spring not instantiate implementing class crudrepository
.
here application.java
class annotations in application project:
package org.patrick.application; @springbootapplication @configuration @enableautoconfiguration @enabletransactionmanagement @enablejparepositories(basepackages = { "org.patrick.hibernate" }) @entityscan(basepackages = { "org.patrick.hibernate" }) @componentscan(basepackages = { "org.patrick.hibernate", "org.patrick.application" })
these annotations should scan second hibernate project of hibernate objects.
my hibernate repository looks this:
package org.patrick.hibernate; @repository public interface patrickdao extends crudrepository<mymodel, long>
this repository not have class implementation. expecting spring populate implementation me.
now, inside of application org.patrick.application
, trying use dao so:
package org.patrick.application; @autowired private patrickdao patrickdao;
this causing application project fail start because of following error:
caused by: org.springframework.beans.factory.nosuchbeandefinitionexception: no qualifying bean found dependency [org.patrick.hibernate.patrickdao]: expected @ least 1 bean qualifies autowire candidate.
i know core problem spring not implementing interface - because if provide own patrickdaoimpl
in org.patrick.hibernate
package, application project start fine. confuses me because have proper annotations on application.java
class, , yet repository cannot implemented spring reason.
is there further need in order spring implement class repository interface? in previous testing, behavior works if under same package.
i found problem. particular model, definition looked such:
package org.patrick.hibernate; public class mymodel implements serializable {}
this model did not have @entity
annotation. if annotation missing, spring give no warnings why cannot implement repository interface. in case, threw nosuchbeandefinitionexception
exception.
i updated model proper annotations:
package org.patrick.hibernate; @entity public class mymodel implements serializable {}
Comments
Post a Comment