Operator SIMPLE_PROPERTY on rid requires a scalar argument, found interface java.util.List in method

  • Post author:
  • Post category:java


jpa上的坑

📢📢📢📣📣📣

哈喽!大家好,我是「奇点」,江湖人称 singularity。刚工作几年,想和大家一同进步🤝🤝

一位上进心十足的【Java ToB端大厂领域博主】!😜😜😜

喜欢java和python,平时比较懒,能用程序解决的坚决不手动解决😜😜😜

✨ 如果有对【java】感兴趣的【小可爱】,欢迎关注我

❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️

————————————————

如果觉得本文对你有帮助,欢迎点赞,欢迎关注我,如果有补充欢迎评论交流,我将努力创作更多更好的文章。

今天使用jpa使用了批量查询的方法遇到了下面的问题:

Operator SIMPLE_PROPERTY on rid requires a scalar argument, found interface java.util.List in method

Caused by: java.lang.IllegalStateException: Operator SIMPLE_PROPERTY on rid requires a scalar argument, found interface java.util.List in method public abstract java.util.List com.example.demo.Dao.AdminRolePermissionDao.findAllByRid(java.util.List).
    at org.springframework.data.jpa.repository.query.PartTreeJpaQuery.throwExceptionOnArgumentMismatch(PartTreeJpaQuery.java:171) ~[spring-data-jpa-2.4.2.jar:2.4.2]
    at org.springframework.data.jpa.repository.query.PartTreeJpaQuery.validate(PartTreeJpaQuery.java:147) ~[spring-data-jpa-2.4.2.jar:2.4.2]
    at org.springframework.data.jpa.repository.query.PartTreeJpaQuery.<init>(PartTreeJpaQuery.java:90) ~[spring-data-jpa-2.4.2.jar:2.4.2]
    ... 43 common frames omitted

从表面的意思我们可以看出操作要求的是简单的参数,但是获取到的是List,可以大致定位问题,传的参数和需要的参数不一致导致的问题,

List<AuthAuditPo> findAllByTenantIdAndAuthSubjectAndUserId( String tenantId, Integer authSubject,List<String> userIds);

解决方法是在批量查询的时候批量的字段后面加一个In就好了

List<AuthAuditPo> findAllByTenantIdAndAuthSubjectAndUserIdIn( String tenantId, Integer authSubject,List<String> userIds);



版权声明:本文为qq_29235677原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。