带有Doobie的PostgreSQL错误:PSQLException:列索引超出范围:3,列数:2

问题描述

我正在与Scala,Doobie和PostgreSQL一起练习。该数据库位于Docker容器中。我能够发布和更新职位,但无法获取所有职位。我不断收到以下错误。

我研究了其他类似的问题,但是由于我只是试图从数据库中获取全部内容而使我有所不同,因此我与众不同。

我开始认为我需要一个圈编码器才能从数据库中读取Json ???下面的circe解码器在leftMap和show上抛出错误

implicit val get: Get[JobPostDetails] =
 Get[Json].temap(_.as[JobPostDetails].leftMap(_.show))
case class JobPost(id: String,details: JobPostDetails)

case class JobPostDetails(title: String,description: String,salary: Double,employmentType: String,employer: String)

  def createTable: doobie.Update0 = {
    sql"""
         |CREATE TABLE IF NOT EXISTS jobs (
         |  id TEXT PRIMARY KEY,|  details JSON NOT NULL
         |)
       """.stripMargin
      .update
  }
  def getAll: doobie.Query0[JobPost] = {
    sql"""
         |SELECT id,details FROM jobs
       """.stripMargin
      .query[JobPost]
  }

  def getPosts: IO[List[JobPost]] = {
    JobQueries.getAll.to[List].transact(xa)
  }
09:01:50.452 [ioapp-compute-7] ERROR org.http4s.server.service-errors - Error servicing request: GET /api/v1/posts from 0:0:0:0:0:0:0:1
org.postgresql.util.PSQLException: The column index is out of range: 3,number of columns: 2.
        at org.postgresql.jdbc.PgResultSet.checkColumnIndex(PgResultSet.java:2760) ~[postgresql-42.2.12.jar:42.2.12]
        at org.postgresql.jdbc.PgResultSet.checkResultSet(PgResultSet.java:2780) ~[postgresql-42.2.12.jar:42.2.12]

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...