我想检索一个干预对象,但我的干预措施已链接到其他对象。例如,当我仅从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
}
我不知道这是否是最好的解决方案,但是我以这种方式使它起作用,我希望它对其他人有帮助。