命名约定中的自定义运算符支持

时间:2018-02-12 17:30:10

标签: spring-data-jpa

我们知道,spring-data-jpa支持基于函数名生成查询的存储库,即(kotlin):

@Repository
interface LocationRepository : JpaRepository<DbLocation, UUID>, 
JpaSpecificationExecutor<DbLocation>{
    fun findOneByNameIgnoringCase(name: String)
}

现在,postgres支持一些自定义运算符,例如timerange'@&gt;' timestamp(读取:timerange包含时间戳)。

我希望有这样的功能,而不需要使用本机查询/规范:

@Repository
interface LocationRepository : JpaRepository<DbLocation, UUID>, 
JpaSpecificationExecutor<DbLocation>{
    fun findOneBySomeFieldContainsTimestamp(something: Instant)
}

有没有办法扩展spring数据jpa以支持新的运算符?

提前致谢。

1 个答案:

答案 0 :(得分:0)

  

有没有办法扩展Spring Data JPA以支持新的运营商?

不是。

当然,从技术上讲,答案是,因为Spring Data是开源的,你可以分叉。一个好的起点是JpaQueryCreator.build(),它包含所有支持的运算符的switch语句。