【发布时间】:2025-12-04 04:35:01
【问题描述】:
我有两个实体
1.请求
@Getter
@Setter
@Entity
@Table(name = "request")
@JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
public class Request {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column(name = "status")
private String status;
@OneToMany(mappedBy = "requestId", fetch = FetchType.LAZY)
private Collection<Service> services;
}
2。服务
@Getter
@Setter
@Entity
@Table(name = "service")
@JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
public class Service{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column(name = "request_id")
private Integer requestId;
@Column(name = "status")
private String status;
}
现在,为了获取具有特定状态的服务的请求,我在@Query之后写了RequestDao 文件。
@Query(value = "SELECT DISTINCT req FROM request req JOIN req.services srvs WHERE (srvs.status = :serviceStatus)")
List<Request> getAll(@Param("serviceStatus") String serviceStatus)
因此,如果任何关联的服务与“where”条件匹配,我将在“request”对象中获取所有服务。而我期望“request”仅包含与“匹配”的那些服务where' 标准。
有人可以帮忙吗? 提前致谢。
【问题讨论】:
标签: java mysql hibernate jpa spring-data-jpa