Kotlin 如何使用spring数据jpa查询单个列作为单个结果值?
实体类:Kotlin 如何使用spring数据jpa查询单个列作为单个结果值?,kotlin,spring-data-jpa,spring-data,Kotlin,Spring Data Jpa,Spring Data,实体类: @Entity class MyEntity { var id: Int? var code: String ... } 预期方法:(失败) 你可以用 findFirstByCodeLike(字符串代码) 这将获取整个实体类,您可以从中选择code。我认为您不可能只使用方法定义来获取Spring数据JPA。如果你需要一个特定的字段,你需要使用@Query注释并将你的查询写入其中,或者像Jibin TJ所说的那样使用getter获取整个实体并从中获取代码。最后,我找到了一个
@Entity
class MyEntity {
var id: Int?
var code: String
...
}
预期方法:(失败)
你可以用
findFirstByCodeLike(字符串代码)代码>
这将获取整个实体类,您可以从中选择code
。我认为您不可能只使用方法定义来获取Spring数据JPA。如果你需要一个特定的字段,你需要使用@Query
注释并将你的查询写入其中,或者像Jibin TJ所说的那样使用getter获取整个实体并从中获取代码。最后,我找到了一个可行的解决方案,但它并不完美
定义:
interface MyEntityJpaRepository : JpaRepository<MyEntity, Int> {
@Query("select code from MyEntity where code like ?1% order by code desc")
fun getMaxCode(codePrefix: String, pageable: Pageable = PageRequest.of(0, 1)): List<String>
}
如果您有实体类,那么可以使用gettersgetCode()
来获取code
我没有整个实体实例,只想查询代码。
select code from MyEntity where code like '20180101_%' order by code desc limit 1;
interface MyEntityJpaRepository : JpaRepository<MyEntity, Int> {
@Query("select code from MyEntity where code like ?1% order by code desc")
fun getMaxCode(codePrefix: String, pageable: Pageable = PageRequest.of(0, 1)): List<String>
}
val code = repository.getMaxCode(codePrefix = "20180101_").firstOrNull()