使用ujorm的程序启动慢的问题

本文探讨了使用Ujorm框架访问数据库时程序启动慢的问题,深入分析了OrmHandler.loadDatabase方法耗时的原因,并提供了通过调整ORM2DLL_POLICY策略来优化数据库加载速度的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用ujorm访问数据库的程序启动慢,检查发现是执行OrmHandler.loadDatabase时耗时长.
跟踪的调用堆栈如下:

MetaDbService.create(MetaDatabase, Session) line: 135     
MetaDatabase.create(Session) line: 385    
OrmHandler.loadDatabase(UjoDecorator<UJO>...) line: 264    
OrmHandler.loadDatabase(Class<UJO>) line: 211    

MetaDbService.java的create方法代码片段:

    boolean ddlOnly = false;
    switch (ORM2DLL_POLICY.of(db)) {
        case CREATE_DDL:
            ddlOnly = true;
        case CREATE_OR_UPDATE_DDL:
        case VALIDATE:
        case WARNING:
        case INHERITED:
            boolean change = isModelChanged(conn, news);///< 检查模型变化.这里耗时比较长
            if (change && ddlOnly) {
                if (news.getTables().size()<tableTotalCount) {
                    // This is a case of the PARTIAL DDL
                    return;
                }
            }
            break;
        case DO_NOTHING:
        default:
            return;
    }

数据库结构没有变化时没有必要执行这个步骤。希望走DO_NOTHING路径。        
如何设置ORM2DLL_POLICY呢?
            
http://ujorm.org/javadoc/org/ujorm/orm/metaModel/MetaParams.html#ORM2DLL_POLICY

public static final Key<MetaParams,Orm2ddlPolicy> ORM2DLL_POLICY
A policy to defining the database structure by a DDL. The default value is option: CREATE_OR_UPDATE_DDL.

在数据库配置文件中设置<orm2ddlPolicy>.

    <database id="Database">
            <orm2ddlPolicy>DO_NOTHING</orm2ddlPolicy> <!-- 默认:CREATE_OR_UPDATE_DDL -->
    </database>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值