【问题标题】:Find entities containing a string in a list in Spring Data Repositories在 Spring Data Repositories 的列表中查找包含字符串的实体
【发布时间】:2015-04-30 00:46:45
【问题描述】:

我确实有一个简单的MongoRepository,它的实体确实有一个List<String> tags 属性。有没有办法将findBy 方法添加到存储库?类似的东西

List<...> findByInTags(@Param("tag") String tag);

因此将返回列表tags中包含给定字符串tag的所有实体。

我尝试使用RestController 和自定义findByTag 端点来解决它。但我想使用 HATEOAS 作为结果格式。

【问题讨论】:

    标签: spring-boot spring-data spring-data-rest


    【解决方案1】:

    来自 spring-data-mongo 单元测试:Person.java

    @Document
    public class Person extends Contact {
        private String firstname;
        private String lastname;
        ...
        private Set<Address> shippingAddresses;
    

    还有PersonRepository

        /**
    * Returns the {@link Person} with the given {@link Address} as shipping address.
    *
    * @param address
    * @return
    */
    Person findByShippingAddresses(Address address);
    

    IIRC,这种语法也适用于集合。所以你应该可以使用

    List<...> findByTag(String tag);

    【讨论】:

    • 太好了,我从没想过。它也适用于List&lt;String&gt;,而不仅仅是Set
    • 是的,我认为它基于 java.util.Collection 接口,所以所有子接口也应该可以工作。
    猜你喜欢
    • 1970-01-01
    • 2018-09-07
    • 2011-03-11
    • 1970-01-01
    • 2017-05-06
    • 2015-01-31
    • 1970-01-01
    • 2021-05-25
    • 1970-01-01
    相关资源
    最近更新 更多