我正在用getall
查询构建一个存储库,该查询使用一个复杂的类型参数进行筛选,如下所示:
@Query("""
SELECT c FROM City c
WHERE :filter IS NULL OR c.code LIKE %:#{#filter.code}%
""")
fun getAllCitiesFiltered(@Param("filter") filter: MyFilter?) : List<City>
MyFilter
类是一个简单的POJO:
class MyFilter {
var code: String? = null
var description: String? = null
}
val city = QCity.city
var query = JPAQuery<City>(entityManager).from(city)
if (filter?.code != null)
query = query.where(city.code.eq("BH"))
if (filter?.description != null)
query = query.where(city.description.eq("Belo Horizonte"))
谢了!
最好的方法是使用接口默认方法:
interface CityJpaRepository : JpaRepository<City, Int> {
fun findByCodeLike(code: String) : List<City>
fun findByFilter(filter: MyFilter?) : List<City> {
return filter?.code?.let { findByCodeLike(it.code) } ?: findAll()
}
}
模板实体: 工作流实体: 指挥实体:
我在oracle数据库中有一个包含客户数据的表。以下是一个简化的定义: 此表的主键是。 该表有许多行,其中为空。在数据库级别,没有问题,但是当我试图通过JPA实体访问这些行时,会导致一些问题: 1:使用
问题内容: 我有以下json对象: 以下几行工作正常: 但是,如果键有空格,那么我将无法访问它们的值,例如 如何访问键名带有空格的值?可能吗 问题答案: 做到这一点的方法是通过括号表示。
在调试中,我得到visitreport.size()=27(即正确的记录计数),但是 visit.getValue()对于每行都是空值,尽管每个行的这个字段中没有空值。怎么了?
问题内容: 我有以下情况: 在我的Query.xml中,我以这种方式编写了插入内容: 阅读mybatis结果地图指南后,我尝试在mybatis-config.xml文件中添加以下行: 但我一直收到以下错误: 谁能告诉我该如何设置? 问题答案: 中的属性需要引用结果映射的名称,而不是Java类型: 但是,如果作为单独的表存储在数据库中,则不支持嵌套插入。您将需要在Java中调用两个插入。Result