我在文档(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);

09-30 22:59