java - 在 Hibernate 中映射 java.awt.Color

标签 java hibernate serialization

现在我在域对象之一中有以下属性:

 @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/

相关文章:

Java套接字/序列化,对象不会更新

java - Android 应用程序无法在其他设备上运行

java - RestTemplate postforobject 在尝试发布到自定义对象时会导致错误

java - 在 Java 中重用 ObjectOutputStreams

java - sqlite中的更新方法没有抛出异常?

java - 如何在MySql中查询JSON

java - 持久化单元 : default Unable to build Hibernate SessionFactory Spring JPA

java - Jackson UpperCamelCase - 不将单个单词属性大写

java - H2 控制台看不到 JAVA 创建的表

python - 在外部文件中存储 unpicklabe pygame.Surface 对象