How can i insert JSON data to postgres using JPA without using the named query?
If i send PGObject to insert (using Converter) it gives error-> Coulmn "column_name" is type JSON but getting byte type
@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
)
and calling from service using JPA repository->
val userDetail = UserDetail(name= "abc" address="some address") jpaRepo.save(userDetail)
What i am doing wrong into it?
user_detialis spelled wrong.@Convertoralso it's@Converter