Grails,遗留数据库无法获得正确类型的 ID

Grails, legacy database fails to get correct type of ID

使用来自遗留数据库的 tables 存在很多问题。 一个是名称为 "RoleType" 的 table,它的 ID 名为 "RoleType"

这里是域的重要片段class:

class RoleType {
    int roleType
....
    static mapping = {
        table 'RoleType'
        version false
        id column: 'roleType', type:'int', generator:'assigned'
        roleType column: 'RoleType'

错误列表:

    Caused by: org.hibernate.PropertySetterAccessException:
 IllegalArgumentException occurred while calling setter for property
 [com.torntrading.legacy.RoleType.id (expected type = java.lang.Long)];
     target = [com.torntrading.legacy.RoleType : (unsaved)], property value = [1] 
setter of com.torntrading.legacy.RoleType.id

我该怎么做才能解决这个问题?

您指定的是 ID 的列,而不是域中 属性 代表它的列。

id name: 'roletype', type:'int', generator:'assigned' roleType column: 'RoleType'

应该做