java - 如何通过模型构造函数在 Spring boot 中进行查询

标签 java spring-boot kotlin spring-data-jpa jpql

我想检索一个对象干预,但我的干预链接到其他对象。例如,当我仅从干预中检索信息而不与表地址建立任何链接时,它效果很好。但是我希望只能从地址表中获取街道名称,但我不知道该怎么做。

提前致谢

@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
}

我不知道这是否是最好的解决方案,但我这样做了,我希望对其他人有帮助。

关于java - 如何通过模型构造函数在 Spring boot 中进行查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49790207/

相关文章:

java - 将 ''下的属性绑定(bind)到com.zaxxer.hikari.HikariDataSource失败

Java:如何在依赖注入(inject)中获取Provider中的子类

java - @Async 在升级到 Spring Boot 1.3.3 后无法正常工作

android - 不推荐使用配置 'compile',但所有配置都是 'implementation'

java - JMS API 无法浏览消息,IBM API 可以

java - 发布应用程序 - 在 Android Market 中受设备限制

java - Spring Boot 1.5.1 和 Elasticsearch 5.4

tomcat - 基于 APR 的 Apache Tomcat Native 库的不兼容版本 [1.1.34]

java - 如何从对象生成 XML

android - 无法让 dagger2 将改造 api 注入(inject)单例对象,然后将该单例对象注入(inject) fragment