fix: mybatis plus and kotlinx LocalDateTime
This commit is contained in:
+49
@@ -0,0 +1,49 @@
|
||||
package club.itstudio.itmanager.mapper.typehandler
|
||||
|
||||
import kotlinx.datetime.LocalDateTime
|
||||
import kotlinx.datetime.toJavaLocalDateTime
|
||||
import kotlinx.datetime.toKotlinLocalDateTime
|
||||
import org.apache.ibatis.type.BaseTypeHandler
|
||||
import org.apache.ibatis.type.JdbcType
|
||||
import org.apache.ibatis.type.MappedJdbcTypes
|
||||
import org.apache.ibatis.type.MappedTypes
|
||||
import java.sql.CallableStatement
|
||||
import java.sql.PreparedStatement
|
||||
import java.sql.ResultSet
|
||||
|
||||
@MappedTypes(LocalDateTime::class)
|
||||
@MappedJdbcTypes(JdbcType.TIMESTAMP)
|
||||
class TimeTypeHandler : BaseTypeHandler<LocalDateTime>() {
|
||||
override fun setNonNullParameter(
|
||||
ps: PreparedStatement,
|
||||
i: Int,
|
||||
parameter: LocalDateTime,
|
||||
jdbcType: JdbcType?
|
||||
) {
|
||||
ps.setObject(i, parameter.toJavaLocalDateTime())
|
||||
}
|
||||
|
||||
override fun getNullableResult(
|
||||
rs: ResultSet,
|
||||
columnName: String
|
||||
): LocalDateTime? =
|
||||
rs.getTimestamp(columnName)
|
||||
?.toLocalDateTime()
|
||||
?.toKotlinLocalDateTime()
|
||||
|
||||
override fun getNullableResult(
|
||||
rs: ResultSet,
|
||||
columnIndex: Int
|
||||
): LocalDateTime? =
|
||||
rs.getTimestamp(columnIndex)
|
||||
?.toLocalDateTime()
|
||||
?.toKotlinLocalDateTime()
|
||||
|
||||
override fun getNullableResult(
|
||||
cs: CallableStatement,
|
||||
columnIndex: Int
|
||||
): LocalDateTime? =
|
||||
cs.getTimestamp(columnIndex)
|
||||
?.toLocalDateTime()
|
||||
?.toKotlinLocalDateTime()
|
||||
}
|
||||
+2
-2
@@ -3,13 +3,13 @@ package club.itstudio.itmanager.service.impl
|
||||
import club.itstudio.itmanager.entity.dto.FinanceRecord
|
||||
import club.itstudio.itmanager.mapper.FinanceRecordMapper
|
||||
import club.itstudio.itmanager.service.FinanceRecordService
|
||||
import com.baomidou.mybatisplus.extension.kotlin.KtQueryWrapper
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
|
||||
import org.slf4j.LoggerFactory
|
||||
import org.springframework.stereotype.Service
|
||||
import reactor.core.publisher.Mono
|
||||
import reactor.core.scheduler.Schedulers
|
||||
import java.util.NoSuchElementException
|
||||
|
||||
@Service
|
||||
class FinanceRecordServiceImpl : ServiceImpl<FinanceRecordMapper, FinanceRecord>(), FinanceRecordService {
|
||||
@@ -36,7 +36,7 @@ class FinanceRecordServiceImpl : ServiceImpl<FinanceRecordMapper, FinanceRecord>
|
||||
): Mono<Page<FinanceRecord>> =
|
||||
blockingCall {
|
||||
logger.info("Paging finance records")
|
||||
val wrapper = ktQuery()
|
||||
val wrapper = KtQueryWrapper(FinanceRecord())
|
||||
if (!keyword.isNullOrBlank()) {
|
||||
wrapper.and {
|
||||
it.like(FinanceRecord::recordNo, keyword)
|
||||
|
||||
@@ -3,13 +3,13 @@ package club.itstudio.itmanager.service.impl
|
||||
import club.itstudio.itmanager.entity.dto.Item
|
||||
import club.itstudio.itmanager.mapper.ItemMapper
|
||||
import club.itstudio.itmanager.service.ItemService
|
||||
import com.baomidou.mybatisplus.extension.kotlin.KtQueryWrapper
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
|
||||
import org.slf4j.LoggerFactory
|
||||
import org.springframework.stereotype.Service
|
||||
import reactor.core.publisher.Mono
|
||||
import reactor.core.scheduler.Schedulers
|
||||
import java.util.NoSuchElementException
|
||||
|
||||
@Service
|
||||
class ItemServiceImpl : ServiceImpl<ItemMapper, Item>(), ItemService {
|
||||
@@ -22,7 +22,7 @@ class ItemServiceImpl : ServiceImpl<ItemMapper, Item>(), ItemService {
|
||||
override fun pageItems(page: Page<Item>, keyword: String?, status: String?): Mono<Page<Item>> =
|
||||
blockingCall {
|
||||
logger.info("Paging items with keyword and status")
|
||||
val wrapper = ktQuery()
|
||||
val wrapper = KtQueryWrapper(Item())
|
||||
if (!keyword.isNullOrBlank()) {
|
||||
wrapper.and {
|
||||
it.like(Item::name, keyword).or().like(Item::code, keyword)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
spring:
|
||||
profiles:
|
||||
active: private
|
||||
|
||||
|
||||
webflux:
|
||||
base-path: /
|
||||
|
||||
@@ -37,6 +37,9 @@ spring:
|
||||
#username: root
|
||||
#password: 123456
|
||||
|
||||
mybatis-plus:
|
||||
type-handlers-package: club.itstudio.itmanager.mapper.typehandler
|
||||
|
||||
app:
|
||||
flow-limit:
|
||||
count: 1000
|
||||
|
||||
Reference in New Issue
Block a user