提交 08779e60 编写于 作者: 梦境迷离's avatar 梦境迷离

增加doobie工具类

上级 8e10a945
...@@ -48,6 +48,8 @@ dependencies { ...@@ -48,6 +48,8 @@ dependencies {
compile group: 'org.scalikejdbc', name: 'scalikejdbc_2.12', version: '3.3.4' compile group: 'org.scalikejdbc', name: 'scalikejdbc_2.12', version: '3.3.4'
compile group: 'com.zaxxer', name: 'HikariCP', version: '3.1.0' compile group: 'com.zaxxer', name: 'HikariCP', version: '3.1.0'
compile group: 'com.fasterxml.jackson.module', name: 'jackson-module-scala_2.12', version: '2.9.9' compile group: 'com.fasterxml.jackson.module', name: 'jackson-module-scala_2.12', version: '2.9.9'
compile group: 'org.tpolecat', name: 'doobie-core_2.12', version: '0.7.0'
compile group: 'org.postgresql', name: 'postgresql', version: '42.2.5'
testCompile group: 'org.hamcrest', name: 'hamcrest-core', version: '1.3' testCompile group: 'org.hamcrest', name: 'hamcrest-core', version: '1.3'
......
package cn.edu.jxnu.utils.doobie
import doobie.util.Meta
import org.postgresql.util.{ HStoreConverter, PGobject }
import play.api.libs.json.{ JsValue, Json }
import scala.collection.convert.{ ImplicitConversionsToJava, ImplicitConversionsToScala }
/**
* doobie 自定义类型映射 隐式对象
*
* @author 梦境迷离
* @since 2019-08-18
* @version v1.0
*/
object DoobieMeta {
//将pgsql的json与play-json进行转化
implicit val jsonMeta: Meta[JsValue] =
Meta.Advanced.other[PGobject]("json").timap[JsValue](
a => Json.parse(a.getValue))(
a => {
val o = new PGobject
o.setType("json")
o.setValue(a.toString())
o
}
)
//将pgsql的hstore与Map[String,String]之间进行转化
implicit val hstoreMapMeta: Meta[Map[String, String]] = Meta.Advanced.other[PGobject]("hstore").timap[Map[String, String]](
a => ImplicitConversionsToScala.`map AsScala`(HStoreConverter.fromString(a.getValue)).toMap)(
a => {
val o = new PGobject
o.setType("hstore")
o.setValue(HStoreConverter.toString(ImplicitConversionsToJava.`map AsJavaMap`(a)))
o
}
)
}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册