我在文档(https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.query-methods.query-creation)中找不到具体的东西
而且在几个博客中都没有令人满意的回答。
所以这是我的问题。
我有这样的表实体:
@Entity
@Table(name = "workstation")
public class Workstation
{
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "userid", nullable = false)
public User user;
}
和用户表Entity:
public class user
{
@Id
@GeneratedValue(strategy = IDENTITY)
@Column(name = "ID", unique = true, nullable = false)
public Integer id;
@Column(name = "age", nullable = false)
public int age
}
现在,我想在我的存储库中进行如下查询:
public interface WorkstationRepo extends CrudRepository<Workstation, Long> {
findByUserAgeLesserThan(int maxAge);
}
意味着我想通过我的工作站实体找到所有未满一定年龄的用户。
是否可以不使用@Query注释?或/它应该是什么样子?
最佳答案
试试这个
List<Workstation> findByUserAgeLessThan(int maxAge);
或者,您也可以编写查询
@Query("Select w from Workstation w where w.user.age < :maxAge")
List<Workstation> findByUserAgeLesserThan(@Param("maxAge") int maxAge);