Java 休眠,从OneToMany列表获取用户
我必须编写一个方法,在该方法中,用户提交其应用程序的所有应用程序都将被返回,即当前登录的用户列在appliedBy列表中的那些应用程序 应用性Java 休眠,从OneToMany列表获取用户,java,spring,hibernate,Java,Spring,Hibernate,我必须编写一个方法,在该方法中,用户提交其应用程序的所有应用程序都将被返回,即当前登录的用户列在appliedBy列表中的那些应用程序 应用性 @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL) @JoinColumn(name = "applied_by_id") private List<UserEntity> appliedBy; 此外,从上述绑定中提取信息后,我需要检查orderState枚举是否正确,
@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "applied_by_id")
private List<UserEntity> appliedBy;
此外,从上述绑定中提取信息后,我需要检查orderState枚举是否正确,即已交付或已完成
我试着这样做:
应用程序存储库
@Query("SELECT a FROM ApplicationEntity a join a.appliedBy u where u.id = :userId")
public List<ApplicationEntity> getUserApplications(@Param("userId") UUID userId);
应用服务
List<ApplicationEntity> application = applicationRepository.getUserApplications(user.getId());
application.stream().allMatch(us -> us.equals(OrderState.DELIVERED) || us.equals(OrderState.FINISHED));
但它不起作用:
有人知道如何让用户从appliedBy列表中退出吗?@QuerySELECT*来自ApplicationEntity a,其中a.applied_by_id=:{userId},nativeQuery=true
列表getUserApplications@ParamuserId长用户标识 您可以使用以下查询:
@Query("SELECT a FROM ApplicationEntity a WHERE a.appliedBy.id = :userID)
你不需要加入
@Query("SELECT a FROM ApplicationEntity a WHERE a.appliedBy.id = :userID)