欢迎进入Wiki » FAQ » Domain类中如何将属性设置为大文本字段(如CLOB)?

Domain类中如何将属性设置为大文本字段(如CLOB)?

在2013-10-17 09:42上被李小翔修改
评论 (0) · 附件 (0) · 记录 · 信息

问题描述

    当需要记录大量文本的情况下,如新闻、公告、日志记录等,数据库中往往使用对应的大文本字段进行数据存储,如Oracle的CLOB、MySQL的longtext、SQLServer的nvarchar(MAX)。

解决方案

    在BroToolkit中,自定义了几个常用的数据库方言(bropen.toolkit.orm.XxxxDialect),以及一个方言解析器(BroDialectResolver),在应用启动过程中,针对数据库类型自动加载对应的方言类。当然,如果您在应用的DataSource中指定了自定义的数据库方言,建议继承自上述方言类,以免导致不可预见的问题。

    在这些方言类中,针对长文本类型的Domain属性,自动映射到对应的数据库字段类型上。编写Domain类时,只需要在constraints里设置好属性的长度、mapping里设置属性类型为text即可。

    示例代码如下:

class Article {
   
    String body
   
   static constraints = {
        body(nullable:true, maxSize:10000000)
   }
   
   static mapping = {
        body type:"text"
   }

}

适用于

    BroToolkit 3.0+

在2013-10-17 09:42上被李小翔创建

Copyright © 2013 北京博瑞开源软件有限公司
京ICP备12048974号