草庐IT

Spring Data MongoDB : set repository collection?

coder 2023-05-05 原文

如何指定我希望我的存储库所属的集合?

我的配置:

<!-- Database -->
<mongo:mongo id="mongoDb" host="localhost" port="27017"/>
<mongo:db-factory id="mongoDbFactory" mongo-ref="mongoDb" dbname="test"/>

<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
    <constructor-arg name="mongoDbFactory" ref="mongoDbFactory"/>
</bean>

<mongo:repositories base-package="de.cochu.springtest.mongodb.repositories"/>

我的文档:

@Document
public class User {

    @Id String id;
    @Indexed String email;

    ...getters and setters omitted...

}

用户集合的存储库(位于 ...mongodb.repositories 包内)。我从 CrudRepository 扩展:

public interface UserRepository extends CrudRepository<User, String>{
    User findByEmail(String email);
}

最后,我想在其中使用 UserRepository 的 spring servlet 的 Controller :

@Controller
public class MyController {

    @Autowire UserRepository repo;

    @RequestMapping("/test.html")
    public String something(HttpServletRequest request) {
        User u = userRepository.findByEmail(request.getParameter("email"));
        ...
    }

}

我通过控制台设置了一些示例用户,mongoTemplate.getCollection("users").count() 工作正常。存储库什么也没找到。

... UserRepository 怎么知道我要搜索集合“users”中的用户?/这是使用存储库的正确方法吗?

... Intellij IDEA 无法识别 UserRepository 的 Autowiring 。尽管它显示错误,但它编译并不会引发异常。有什么我可以做的吗?

最佳答案

这部分文档可能有您正在寻找的答案:

http://static.springsource.org/spring-data/data-mongodb/docs/current/reference/html/#mongo-template.save-insert.collection

There are two ways to manage the collection name that is used for operating on the documents. The default collection name that is used is the class name changed to start with a lower-case letter. So a com.test.Person class would be stored in the "person" collection. You can customize this by providing a different collection name using the @Document annotation. You can also override the collection name by providing your own collection name as the last parameter for the selected MongoTemplate method calls.

关于Spring Data MongoDB : set repository collection?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10321027/

有关Spring Data MongoDB : set repository collection?的更多相关文章

随机推荐