lớp miền của tôi trông như thế này:Làm cách nào để Grails ánh xạ trường String của tôi thành Clob?
package com.initech.tps
class Foo
{
String stuff
static mapping = {
// mapping to a legacy table as opposed to letting Grails create it
table name: 'FOO', schema: 'TPS'
id generator: 'sequence', params: [sequence: 'MY_SEQ'],
column: 'FOO_ID', sqlType: 'integer'
foo column: 'STUFF'
}
static constraints = {
stuff(nullable: true, maxSize: 40000)
}
}
Tôi đã theo Grails ấn tượng sẽ tìm ra sử dụng một CLOB thay vì một VARCHAR dựa trên đi qua tôi trong một giá trị đủ lớn cho sự hạn chế MAXSIZE, thay vào đó tôi nhận được thông báo lỗi này trong bảng điều khiển:
org.hibernate.HibernateException: Wrong column type in FOO for column STUFF.
Found: clob, expected: varchar(40000)
Tôi có cần sqlType rõ ràng trên ánh xạ không? Tôi đã thử sử dụng các giá trị khác nhau của maxSize và loại bỏ hoàn toàn, không có sự khác biệt. Ngoài ra, thêm sqlType: clob
hoặc không hoạt động.
Tôi đang sử dụng Grails 1.3.7, sử dụng IBM DB2-Express.
Đó sẽ là một trong những cách để làm điều đó, tôi đoán. Tôi thực sự muốn thấy một câu trả lời cho phép tôi sử dụng một chuỗi trong đối tượng miền. Phải có một UserType cho việc này. –