我有以下表格:
工作
@Entity
@Table(name = "job")
data class JobEntity( {
..
.. //irrelevant code
): TrackableEntity() {
@OneToMany(mappedBy = "jobId", fetch = FetchType.Lazy)
var schedules: Set<JobScheduleEntity>? = emptySet()
}
日程
@Entity
@Table(name = "job_schedule")
data class JobScheduleEntity(
var jobId: Long,
..
..
var active: Boolean
) : TrackableEntity() {
@ManyToOne(fetch = FetchType.Lazy)
@JoinColumn(name = "jobId", updatable = false, insertable = false)
var job: JobEntity?= null
}
现在我遇到了这种情况,我想搜索所有工作,并收集他们所有处于活动状态的日程安排,所以 active = true,但是,我不想总是这样做,但只是在一种特定情况下,所以我不能只是在 Job Entity 中的 jobSchedules 上放置一个默认过滤器。我尝试使用 @Query 注释进行左外连接,但从我可以收集到的信息来看,实体本身将始终选择可跟踪实体变量中的所有时间表。我如何在 Job 的 JpaRepository 中编写一个特定的函数来获取作业,并且只有它们处于活动状态的计划?如果您需要有关代码的更多信息,请告诉我,我尽量简洁