1、mongodb的低版本bson无法转换类型
比如MongoDB数据库表的字段类型为Decimal,实体类用String去定义就会报如下错误
No converter found capablof converting from type [org.bson.types.Decimal128] to type [java.lang.String]
解决方法
2、排除自带的MongoDB依赖,添加自定义添加依赖
spring-boot-starter-data-mongodb有多少个与MongoDB有关系的都排除出去
org.springframework.boot
spring-boot-starter-data-mongodb
logback-classic
ch.qos.logback
spring-boot-starter-logging
org.springframework.boot
org.mongodb
mongodb-driver
org.mongodb
mongodb-driver-core
org.mongodb
bson
3、自定义高版本的jar依赖
org.mongodb
mongodb-driver
3.12.5
org.mongodb
mongodb-driver-core
3.12.5
org.mongodb
bson
3.12.5
4、数据源配置解决方法
MongoDB报Exception authenticating MongoCredential异常及权限问题处理解决,参考文章处理
mongodb://用户名:密码@机器IP:端口/数据库名?授权源=授权的名称
由于安装的时候是以授权模式进行安装的,详情请参考Docker安装MongoDB
# MongoDB数据库配置
# mongodb://用户名:密码@机器IP:端口/数据库名?授权源=授权的名称
spring.data.mongodb.uri=mongodb://liangjl:123456@192.168.1.231:27017/mongoDB?authSource=admin
5、实体类
import org.springframework.data.annotation.Id
import org.springframework.data.mongodb.core.mapping.Document
import java.math.BigDecimal
import java.util.*
@Document(collection = "sales")
data class Sales constructor(
/**
* id
*/
@Id
var id: String? = null,
/**
* 条目
*/
var item: String? = null,
/**
* 价钱
*/
var price: BigDecimal? = null,
/**
* 数量
*/
var quantity: Int? = null,
/**
* 时间
*/
var date: Date? = null
)
6、SalesService详解
查询所有销售订单数据
@Autowired l