我有实体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
的所有测试呢?
4条答案
按热度按时间hfyxw5xn1#
下面的方法签名将得到你想要的:
这是使用Spring Data JPA的属性表达式特性。签名
Users_UserName
将被转换为JPQLx.users.userName
。注意,这将对给定的用户名执行精确匹配。brtdzjyr2#
我使用了@JoinTable,我让它可以工作:
t.users u
而不是User u
lf5gs5x23#
另一个答案显示了如何使用函数命名技术实现所需的功能。我们可以使用@Query注解实现相同的功能,如下所示:
cunj1qz14#
您也可以使用无下划线的