Как вставить данные JSON в postgres, используя JPA + Spring boot + Kotlin? - PullRequest
0 голосов
/ 31 мая 2018

Как я могу вставить данные JSON в postgres, используя JPA, не используя именованный запрос?

Если я посылаю PGObject для вставки (используя конвертер), это выдает ошибку-> Coulmn «column_name» - это тип JSON, но получается байтвведите

@Entity
@Table(name="users")
data class User{
   @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "id") val identifier: Int? = null,
   @Convertor(JSONConvertor::class.java)
   @Column(name = "user_detial") var userDetail: UserDetail? = null,
}


@Convertor
class JSONConvertor : AttributeConverter<UserDetail, PGObject> {
  override fun convertToDatabaseColumn(UserDetail attribute) {
   try {
      val userDetail = mapper.writeValueAsString(attribute);
      var pgObject = PGObject()
      pgObject.type = "json"
      pgObject.value = userDeatail
      return pgObject
   } catch (JsonProcessingException e) {
      throw new RuntimeException("Cannot serialize", e);
   }
  }
}

data class UserDetail(
   val name: String,
   val address: String? = null 
)

и вызов из службы с использованием репозитория JPA ->

val userDetail = UserDetail (name = "abc" address = "некоторый адрес") jpaRepo.save (userDetail)

Что я делаю не так в этом?

...