我正在使用Oracle 10g和Grails V2.0.1的项目。Grails中使用Oracle 10g CLOB 2.0.1
我想在我的领域类用于文本输入字段CLOB数据类型,它似乎并不奏效。我第一次尝试是基于什么我读here about GORM,哪里是说,使用type: 'text'
,像这样的例子:映射
class Address {
String number
String postCode
static mapping = {
postCode type: 'text'
}
}
Grails的,要在我的数据库一个LONG
数据类型,这是not desirable
第2次尝试试图type: 'clob'
。这是有效地让我的DB数据类型为CLOB,但造成了类转换错误,因为属性本身被定义为一个字符串,即String postCode
。 (请注意,我从来没有见过的文档type:'clob'
,但我可以从方言类推断clob
可能是有一个有效的输入)
我后来试图定义属性为java.sql.Clob
,即Clob postCode;
,那没”根本不工作。没有错误消息,但没有任何东西持续到数据库。
我把保持Clob
方法,但使用瞬时String
财产,其中getter/setter方法试图映射瞬态字符串值,以持久CLOB字段的最后一步。但我无法弄清楚如何让我的字符串值进入Clob。 Grails不会抛出错误,但在尝试分配后,println()
从不打印。我试过使用myClob.setString(1, theString)
来做任务,但没有成功。
因此,为了使长话短说,我似乎无法在我的情况下使用CLOB和我想知道是否有人看到了这一点,并能够克服它。如果是这样,你能告诉我我可能会做错什么吗?
或者是否有一种方法可以覆盖Grails选择的数据类型,以便我可以强制它将postCode type: 'text'
映射到CLOB
?我不熟悉Hibernate,所以如果有办法,我不确定如何去做。
备注:在我们从Grails 1.3.7升级到2.0.1之前,我确定type: 'text'
确实映射到了Oracle中的CLOB。所以这可能是2.0.1的新功能。
那么在[2.0.x文档](http://grails.org/doc/2.0.x/ref/Database%20Mapping/type.html)中实际上是写在你的案例类型将是clob,但我没有必要使用这个,所以我不能保证这是2.0.x的工作 – 2012-04-27 15:59:19