![](/img/trans.png)
[英]PostgreSQL throws "column is of type jsonb but expression is of type bytea" with JPA and Hibernate
[英]PostgreSQL jsonb type with jpa attribute converter
我有一个带有“jsonb”类型列的表格。 在实体中,我使用属性转换器为此列设置了字符串类型:
@Convert(converter = JSONBConverter.class)
@Column(name = STATE_COLUMN, nullable = false)
private String getState() {
return state;
}
我的转换器看起来像:
@Converter
public class JSONBConverter implements AttributeConverter<String, Object> {
@Override
public Object convertToDatabaseColumn(String attribute) {
PGobject result = new PGobject();
result.setType("json");
try {
result.setValue(attribute);
} catch (SQLException e) {
throw new IllegalArgumentException("Unable to set jsonb value");
}
return result;
}
@Override
public String convertToEntityAttribute(Object dbData) {
if (dbData instanceof PGobject) {
return ((PGobject) dbData).getValue();
}
return StringUtils.EMPTY;
}
}
我将方言设置为: org.hibernate.dialect.PostgreSQL95Dialect
我以为它会起作用。 但我收到一个错误:
org.postgresql.util.PSQLException: Nieznana warto 类型:1 936 628 443
当我调试它时,它在PgPreparedStatement
类 setObject 方法 1936628443 中获取targetSqlType
- 指示从我的 AttributeConverter 类中获取的对象类型,该类在SqlTypeDescriptorRegistry
类中分配。
我有:
PostgreSQL 版本42.2.1
休眠版本5.2.10.Final
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.