我有一个这样的实体,由Hibernate映射:
@Entity
public class MyTable {
// ...
private String myMessage;
// Getters...
}
我必须同时支持Oracle和DB2,但是此特定列在两个数据库的模式中具有不同的类型:在Oracle模式中为VARCHAR2(2000)
,在DB2中为CLOB
。>
现在,如果我保持原样,它适用于Oracle并在DB2上中断,如果我用myMessage
注释@Lob
,则可以在DB2上运行,但是在Oracle上中断。
由于我无法更改架构,因此处理这种情况的最佳方法是什么?我当时在想类似自定义的Hibernate类型,但不确定。
请注意,该实体是只读的,目前我对持久化数据不感兴趣。