从 OneToMany 关系中获取满足 JPA 中条件的实体

时间:2021-01-15 13:05:16

标签: hibernate kotlin jpa hibernate-annotations hibernate-onetomany

我有以下表格:

工作

@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 中编写一个特定的函数来获取作业,并且只有它们处于活动状态的计划?如果您需要有关代码的更多信息,请告诉我,我尽量简洁

0 个答案:

没有答案