现在我在域对象之一中有以下属性:
@Column(name = "color")
public Color getColor() {
return color;
}
该字段以文本形式存储在 Postgres 数据库中。当我尝试存储这些时,出现以下异常:
org.hibernate.type.SerializationException: could not deserialize
at org.hibernate.internal.util.SerializationHelper.doDeserialize(SerializationHelper.java:243)
at org.hibernate.internal.util.SerializationHelper.deserialize(SerializationHelper.java:287)
at org.hibernate.type.descriptor.java.SerializableTypeDescriptor.fromBytes(SerializableTypeDescriptor.java:138)
at org.hibernate.type.descriptor.java.SerializableTypeDescriptor.wrap(SerializableTypeDescriptor.java:113)
at org.hibernate.type.descriptor.java.SerializableTypeDescriptor.wrap(SerializableTypeDescriptor.java:27)
at org.hibernate.type.descriptor.sql.VarbinaryTypeDescriptor$2.doExtract(VarbinaryTypeDescriptor.java:53)
at ...
Caused by: java.io.StreamCorruptedException: invalid stream header: 5C786163
at java.io.ObjectInputStream.readStreamHeader(Unknown Source)
at java.io.ObjectInputStream.<init>(Unknown Source)
at org.hibernate.internal.util.SerializationHelper$CustomObjectInputStream.<init>(SerializationHelper.java:309)
at org.hibernate.internal.util.SerializationHelper$CustomObjectInputStream.<init>(SerializationHelper.java:299)
at ...
我想知道 Hibernate 是否提供这种类型的映射?我的另一种可能性是使用 RGB 值将颜色转换为字符串。但由于我的域对象也是我的 Hibernate 对象,我真的不知道在不将属性类型更改为 String 的情况下应该如何做到这一点。
最佳答案
好吧,我注意到我可以使用 javax.persistence.AttributeConverter 编写自己的转换器,如所述 here
关于java - 在 Hibernate 中映射 java.awt.Color,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34241509/