我有两个具有@OneToMany关系的实体
第一个实体
@Entity
@Table(name = SchemaConstant.RESCHEDULE_TABLE_NAME)
public class RescheduleRequestEntity extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "RESCHEDULE_ID_GEN")
@SequenceGenerator(
name = "RESCHEDULE_ID_GEN",
allocationSize = 1,
sequenceName = SchemaConstant.RESCHEDULE_SEQUENCE_NAME)
private Long id;
private String adviseNo;
private LocalDate adviseDate;
private Long customerId;
@Enumerated(value = EnumType.STRING)
private AdviceStatus status;
@OneToMany(mappedBy = "reschedule", fetch = FetchType.LAZY)
private List<RescheduleDetailEntity> accountDetails;
}
第二实体
@Entity
@Table(name = "RESCHEDULE_DETAILS")
public class RescheduleDetailEntity extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "RESCHEDULE_DETAILS_ID_GEN")
@SequenceGenerator(
name = "RESCHEDULE_DETAILS_ID_GEN",
allocationSize = 1,
sequenceName = "S_RESCHEDULE_DETAILS")
private Long id;
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "ACCOUNT_ID", nullable = false)
private AccountEntity account;
@Enumerated(value = EnumType.STRING)
private AdviceStatus status;
@Enumerated(value = EnumType.STRING)
private TenureType tenureType;
private Integer tenure;
@ManyToOne
@JoinColumn(name = "ADVISE_ID")
private RescheduleDetailEntity reschedule;
}
AND枚举
public enum AdviceStatus {
OPEN,
ACTIVE,
CLOSE
}
我想以条件为条件获取数据
SELECT *
FROM RESCHEDULEREQUESTENTITY R, RESCHEDULEDETAILENTITY D
WHERE R.ID = :PID
AND D.ADVISEID = R.ID
AND D.STATUS <> "CLOSE"
“从RescheduleRequestEntity中获取数据,并从RescheduleDetailEntity中获取数据,其中RescheduleDetailEntity.status不等于“ CLOSE”,其中“ Status”为枚举类型。”
我创建了一个如下所示的JPA存储库类,以获取数据
@Repository
public interface RescheduleRequestRepository
extends JpaRepository<RescheduleRequestEntity, Long>, JpaSpecificationExecutor {
Optional<RescheduleRequestEntity> findByAdviseNo(String adviceNo);
Optional<RescheduleDetailEntity> findByIdAndAccountDetails_StatusNot(
Long adviceId, AdviceStatus status);
}
但它不是在符合我期望的条件下获取数据,也不是在忽略状态为“ CLOSE”的数据
答案 0 :(得分:0)
您可以使用@Query注释使其成为自定义查询。