博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Grails 技巧 - Grails and Hibernate
阅读量:6279 次
发布时间:2019-06-22

本文共 1529 字,大约阅读时间需要 5 分钟。

hot3.png

1.使用Hibernate XML映射文件

当迁移历史的基于Hibernate的项目到grails,在grails-app/conf/hibernate目录下创hibernate.cfg.xml

当hibernate.cfg.xml存放的位置不符合要求时,可以grails-app/conf/DataSource.groovy下配置其它位置

hibernate {    config.location = "file:/path/to/my/hibernate.cfg.xml"}

或者列表

hibernate {    config.location = ["file:/path/to/one/hibernate.cfg.xml",                       "file:/path/to/two/hibernate.cfg.xml"]}

2.约束条件 (Constraints)

如果历史Domain java类 是org.example.Book

则创建groovy脚本 src/java/org/example/BookConstraints.groovy

增加标准的GORM constraints到脚本中

constraints = {    title blank: false    author blank: false}

这样org.example.Book 就具备了grails的验证能力

3.多数据源

如果存在多个数据源,grails-app/conf/hibernate/hibernate.cfg.xml使用默认数据源

hibernate.cfg.xml可以增加数据源前缀

grails-app/conf/hibernate/ds2_hibernate.cfg.xml

上面配置会使用 ds2 数据源

4.Session.createFilter()

Session过滤器对Domain关联的集合对象用处非常大,可以提高集合访问性能

class Branch {    String name    static hasMany = [visits: Visit]    int getVisitCount() {        visits == null ? 0 : withSession {            it.createFilter(visits, 'select count(*)').uniqueResult()        }    }}class Branch {    String name    List visits    static hasMany = [visits: Visit]    List
getVisitsByPage(int pageSize, int pageNumber) { Branch.withSession { session -> session.createFilter(visits, '') .setMaxResults(pageSize) .setFirstResult(pageSize * pageNumber) .list() } }}

转载于:https://my.oschina.net/linghuchong/blog/141325

你可能感兴趣的文章
在git@osc上托管自己的代码
查看>>
机器学习算法:朴素贝叶斯
查看>>
小五思科技术学习笔记之扩展访问列表
查看>>
使用Python脚本检验文件系统数据完整性
查看>>
使用MDT部署Windows Server 2003 R2
查看>>
Redhat as5安装Mysql5.0.28
查看>>
通过TMG发布ActiveSync
查看>>
LINUX家族神器-Gentoo安装部署
查看>>
产品设计体会(6024)一个产品经理小站的访客分析
查看>>
Web服务器的配置与管理(4) 配置访问权限和安全
查看>>
Vmware导致VS2005调试自动退出的问题解决方案
查看>>
Linux中设置Tomcat开机自启动
查看>>
类方法
查看>>
ExtJs中column与form布局的再次领悟
查看>>
asp.net MVC2 初探十一
查看>>
C++/CLI思辨录之Object的对象布局
查看>>
Windows 7优化调整使用小技巧
查看>>
使用 “Unicode 字符集 ” 使用错误,应该使用 “使用多字节字符集”
查看>>
C中如何实现C++中的默认参数?
查看>>
某直播App问题分析
查看>>