如何解决Spring data JPA - 基于过滤器检索相关实体
我正在使用 spring DATA JPA 并且有两个实体,它们之间具有 OneToOne 关系。 我正在使用 Example 进行查询,但我需要添加一些过滤条件以仅在完成时检索相关实体(要检查状态值)。
这是我的简化代码:
public class MasterEntity {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE,generator = "MY_SEQ")
private Long id;
private Long fieldOne;
private String someAttribute;
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "related_entity_id",referencedColumnName = "id")
private RelatedEntity relatedEntity;
}
我的相关实体:
public class RelatedEntity {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE,generator = "MY_SEQ_2")
private Long id;
private String someAttribute;
private Integer status;
@OneToOne(mappedBy = "relatedEntity")
private RelatedEntity relatedEntity;
}
我的查询是由服务执行的,如下:
@Override
public List<MasterEntity > getList(@NonNull fieldOne,@NonNull SomeFilterDto request) {
MasterEntity entity = mapper.map(request);
Example<MasterEntity> example = Example.of(entity);
List<MasterEntity> result = myRepository.findAll(example)
.stream()
.collect(Collectors.toList());
return result;
}
我需要的是根据 SomeFilterDto 中的过滤器返回 MasterEntity 列表,这没问题。我想补充的是,仅当 relatedEntity.status = 某个值时才返回相关的 RelatedEntity,否则为 null。
请问,您能建议这样做的方法吗?
提前致谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。