无法使用Spring数据和mongodb存储库扩展自定义存储库界面

时间:2019-03-31 08:30:20

标签: java spring mongodb spring-boot spring-data

用户存储库界面:

 public interface IUserRepository extends MongoRepository<User, Long>, IUserDAO {

 }

用户DAO界面:

public interface IUserDAO {

        List<User> query(String field, String val);
}

用户DAO实施:

@Repository
@Qualifier("UserDAO")
public class UserDAO implements IUserDAO {

    @Autowired
    private MongoTemplate mongoTemplate;


    @Override
    public List<User> query(String field, String val) {
        ....
    }

}

用户界面:

@Component
public class UsersFacade extends BaseFacade<User> implements IUsersFacade {

    static Logger logger = Logger.getLogger(UsersFacade.class.getName());

    @Autowired
    private IUserRepository usersRepository;



}

用户:

@Document(collection = "users")
public class User {

    @Id
    private String id;
    private String name;

    //getter 
    //setter
}

这是我得到的错误:

  

Org.springframework.beans.factory.UnsatisfiedDependencyException:   创建名称为'usersController'的bean时出错:不满意   通过字段“ usersFacade”表示的依赖关系;嵌套异常为   org.springframework.beans.factory.UnsatisfiedDependencyException:   创建名称为'usersFacade'的bean时出错:不满意的依赖关系   通过“ usersRepository”字段表示;嵌套异常为   org.springframework.beans.factory.BeanCreationException:错误   创建名称为“ IUserRepository”的Bean:初始化方法的调用   失败嵌套异常为   org.springframework.data.mapping.PropertyReferenceException:否   找到类型为用户的属性查询

如果我通过将方法名称更改为query1来更改签名,则会更改以上错误消息:

  

....调用init方法失败;嵌套异常为   org.springframework.data.mapping.PropertyReferenceException:否   找到类型为用户的属性 query1

我猜测由于某种原因,它期望用户中的文件名之间具有匹配的名称,以匹配方法的名称..如果我要在User.java中创建文件名为query的应用程序正在启动

我在这里想念什么?我想使用MongoRepository的功能并添加自己的自定义存储库操作-我在这里缺少什么?

谢谢!

0 个答案:

没有答案