鉴于以下域类,我想通过反序列化字节将Blob数据转换为Java对象。有什么方法可以遵循?在从DB中获取数据后,是否需要指定任何转换器到GORM来调用它?
class SpringMessage {
static mapping = {
datasource 'staging_oracle'
message type: 'blob', column: 'message_bytes'
createdDate type: Date, column: 'created_date'
}
static constraints = {
}
String messageId
Blob message //It holds the serialized bytes
Date createdDate
}
理想情况下,我不想拥有" Blob"域类的属性。相反,我想声明实际的Java类类型(例如:Foo message
),但希望在映射中指定某种类型的转换器。即
static mapping = {
message type:'blob', converter:FooDeserializer
}
注意映射中消息列的转换器参数。 Grails有这样的功能吗?或者从GORM获取数据后允许我做一些post processing
的任何其他功能?
我使用Grails 2.3.3。
截至目前,我在grails生成的findBy方法之外进行反序列化。我希望有一些回调方法可以被findByXXX实现调用来执行从Blob到java对象的转换。
ObjectInputStream is = new ObjectInputStream(springMessage.message.getBinaryStream())
Message<?> message = is.readObject()