我有实体User和Test
User
Test
@Entity public class User { private Long id; private String userName; } @Entity public class Test { private Long id; @ManyToMany private Set<User> users; }
我可以按用户实体获得所有测试:
public interface TestRepository extends JpaRepository<EventSettings, Long> { List<Test> findAllByUsers(User user); }
但是我可以使用哪个查询查找所有测试userName?
userName
以下方法签名将使你想要:
List<Test> findByUsers_UserName(String userName)
这是使用Spring Data JPA 的属性表达式功能。签名Users_UserName将转换为JPQL x.users.userName。请注意,这将对给定的用户名执行完全匹配。
Users_UserName
JPQL x.users.userName