在Spring Data Repositories中查找列表中包含字符串的实体

ale*_*ter 8 spring-data spring-data-rest spring-boot

我确实有一个简单的MongoRepository,它的实体确实有一个List<String> tags属性.有没有办法将findBy方法添加到存储库?就像是

List<...> findByInTags(@Param("tag") String tag);
Run Code Online (Sandbox Code Playgroud)

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

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

Mar*_*ner 17

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

@Document
public class Person extends Contact {
    private String firstname;
    private String lastname;
    ...
    private Set<Address> shippingAddresses;
Run Code Online (Sandbox Code Playgroud)

PersonRepository

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

IIRC,这种语法也适用于Collections.所以你应该可以使用

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