我想检索一个干预对象,但我的干预措施已链接到其他对象。例如,当我仅从Intervention检索信息而不与表Address进行任何链接时,它将很好地工作。但是我只希望能够从地址表中获得街道名称,而我却不知道该怎么做。

提前致谢

@Repository
interface InterventionRepository : JpaRepository<Intervention, Long> {

@Query("select new Intervention(i.id, i.date, i.wishedDate, new Address(a.streetName1)) " +
        "from Intervention i " +
        "inner join i.address a ")
fun getInterventions(): Optional<ArrayList<Intervention>>
}

最佳答案

最终我自己找到了解决方案,我做错了。
我需要在构造函数中添加地址的值。我以这种方式使其工作:

@Repository
interface InterventionRepository : JpaRepository<Intervention, Long> {

@Query("select new Intervention(i.id, i.date, i.wishedDate, a.name) " +
        "from Intervention i " +
        "inner join i.address a ")
fun getInterventions(): Optional<ArrayList<Intervention>>
}


在我的构造函数中,我这样做是这样的:

constructor(interventionId: Int?, date: Date?, addressName: String?) {

      this.id = interventionId
      this.date = date

      this.address = Address()
      this.address?.name = addressName
}


我不知道这是否是最好的解决方案,但是我以这种方式使它起作用,我希望它对其他人有帮助。

07-24 09:39