Grails My 2.0 ứng dụng có một đối tượng miền Người dùng xác định:Thay đổi id khóa chính để loại Chuỗi trong Grails
class User {
static mapping = {
table "dt_user"
columns {
id column:'user_id', generator:'assigned', type:'string'
}
}
Khi tôi cố gắng tiết kiệm một tài khoản mới trong file bootstrap tôi như vậy:
def user = new User(id: "smith").save(failOnError:true)
tôi nhận được lỗi sau:
| Error 2012-01-13 10:09:42,659 [main] ERROR property.BasicPropertyAccessor - IllegalArgumentException in class: User, setter method of property: id
| Error 2012-01-13 10:09:42,660 [main] ERROR property.BasicPropertyAccessor - expected type: java.lang.Long, actual value: java.lang.String
tôi cũng đã cố gắng thay đổi lớp người dùng này:
class User {
static mapping = {
table "dt_user"
columns {
id column:'user_id', generator:'assigned', type:'string', name:'id'
}
}
String id
}
làm cho các lỗi ở trên biến mất. Tuy nhiên tôi thấy rằng điều này dẫn đến các id được tạo tự động, hoàn toàn bỏ qua mệnh đề generator: 'assigned'
.
Tôi đang làm gì sai ở đây?