Grails将Blob列转换为反序列化为对象

时间:2015-05-22 18:21:36

标签: grails gorm grails-domain-class grails-2.3

鉴于以下域类,我想通过反序列化字节将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() 

0 个答案:

没有答案