借助模型构造函数,如何在 Spring Boot 中进行查询
Posted
技术标签:
【中文标题】借助模型构造函数,如何在 Spring Boot 中进行查询【英文标题】:How to query in Spring boot thanks to the model constructors 【发布时间】:2018-09-22 05:34:24 【问题描述】:我想检索一个对象干预,但我的干预与其他对象相关联。例如,当我只从干预中检索信息而不与表地址建立任何链接时,它运行良好。但是我希望只能从地址表中获取街道名称,但我不知道该怎么做。
提前致谢
@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>>
【问题讨论】:
【参考方案1】:最后我自己找到了解决方案,我真的做错了。 我需要在构造函数中添加地址的值。我是这样工作的:
@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
我不知道这是否是最好的解决方案,但我以这种方式工作,希望对其他人有所帮助。
【讨论】:
以上是关于借助模型构造函数,如何在 Spring Boot 中进行查询的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Spring Boot 的 @RestController 注释用于创建请求处理程序的方法中使用带有参数的构造函数
在 Spring Boot 中添加 servlet 过滤器时没有默认构造函数
Spring-boot,无法自动装配类。未找到默认构造函数引发异常