【问题标题】:Want to find users by type想按类型查找用户
【发布时间】:2026-01-10 11:15:01
【问题描述】:

这是我的模型

    public class Entity {

    @Id
    private String id;
    private String username;
    private String name;
    private String surname;
    private Address address;
    private BusinessInformation businessInformation;
    private Binary image;
    private List<UserRolls> userRolls;

//Constructor 

//Getters and Setters

//BusinessInformation  Model
private String businessName;
    private String businessType;
    private String businessSize;
    private String telephoneNumber;
    private String registrationNumber;
    private String productAssigned;
    private String partnerAssigned;
    private String salesmenEmail;
//Constructor 

//Getters and Setters
    List<User> findUsersByPartnerAssigned(String partnerAssigned);

在我的存储库中,我正在尝试这样的事情

@Query("{ 'partnerAssigned' : ?0 }")
    List<User> findUsersByPartnerAssigned(String partnerAssigned);

还有我的控制器

//Get all Entities by type
@RequestMapping(value = "/{partner}", method = RequestMethod.GET)
public List<User> getAllByPartner(@PathVariable("partner") String partner) {
    List<User> user = this.entityRepository.findUsersByPartnerAssigned(partner);
    return user;
}

任何建议将不胜感激

【问题讨论】:

    标签: spring mongodb spring-boot filter


    【解决方案1】:

    您可以简单地使用List&lt;Entity&gt; findByBusinessInformation_partnerAssigned(String name);

    希望你有注释

    @Document
    public class Entity{
    }
    

    和存储库

    public EntityRepository extends MongoRepository<Entity,String>{}
    

    【讨论】:

      【解决方案2】:

      您可以按照文档中here 的说明使用嵌套属性遍历。给出的示例是Person -&gt; Address -&gt; ZipCode,它与您的问题的结构相似。您也可以使用直接查询(使用连接,因为Entity 中引用了BusinessInformation)。示例见here

      【讨论】:

      • 您好,感谢您的回复,控制器如何寻找这样的东西
      • 尝试使用路径变量的方式,但似乎没有工作 @RequestMapping(value = "/{partner}", method = RequestMethod.GET) public List getAllByPartner(@PathVariable( "partner") String partner) { List user = this.entityRepository.findByBusinessInformation_PartnerAssigned(partner);返回用户; }
      最近更新 更多