Как я могу вставить данные 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)
Что я делаю не так в этом?