Grails:遗留数据库:在每个映射表中具有不同类型的外键

时间:2014-01-28 15:28:09

标签: grails mapping gorm

所以我有一个像这样的grails模型:

class Tree {
    Long id;
    String name;
    static hasMany = [branches: Branch
}

class Branch {
    Long id;
    String name;
    static belongsTo = [tree: Tree]
}

问题是在DB中,Tree id是一个数字,而Branch表中的tree_id是varchar。 db模型是事实上的外键,根本不作为约束强制执行。

Gorm生成一个不由我的数据库处理的查询:它试图在需要文本的位置输入数值:
 ERROR util.JDBCExceptionReporter - ORA-01722:无效数字

如何在绑定参数之前告诉GORM转换值?

我查看了join table config,但我找不到任何相关内容。

1 个答案:

答案 0 :(得分:0)

您是否尝试在映射中使用column定义中的sqlType

class Branch {
    Long id
    String name
    static belongsTo = [tree: Tree]

    static mapping = {
        tree column: 'TREE_ID', sqlType: "char"
    }
}

现在无法测试,但请告诉我。