用户存储库界面:
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的功能并添加自己的自定义存储库操作-我在这里缺少什么?
谢谢!