基础数据缓存配置

1. 基本功能 1. 基本功能

1.1. 基础数据缓存配置 1.1. 基础数据缓存配置

为了提高查询更新等效率,给一些方法(数据几乎变动的)加一级、二级缓存,配置后,方法会加上相应的缓存注解。

2. 配置方法 2.配置方法

2.1. 基础数据缓存配置 2.1. 基础数据缓存配置

配置

  1. 对象建模– 业务对象– 业务对象管理,编辑业务对象,进入基本信息tab页。
  2. 在缓存配置出进行相应的配置:缓存配置(不开启、一级缓存、二级缓存)、自定义key值策略、主键key值策略。
    QQ截图20191120165501
    配置说明:
    (1)不开启:不会生成缓存相关的注解 ;
    (2)配置一级缓存并开启主键key值策略:会在serviceImpl文件对应get(pk)、update()、saveOrUpdate()、delete()的方法会加上相应的缓存注解(@CacheEnable, @CacheUpdater, @CacheUpdater, @CacheDestroyer) ;
    (3)配置一级缓存并开启自定义key值策略:会在update()、saveOrUpdate()、delete()的方法会加上相应的缓存注解(@CacheUpdater, @CacheUpdater, @CacheDestroyer) ;
    (4)配置二级缓存:在一级缓存的基础上,如果有开启了主键key值策略,则会在get(pk)方法上多加一个注解@L2CacheEnable;
  3. 保存并提交业务对象,然后重新生成代码。
  4. 本地工程中,pom需要引入以下包:
<dependency> 
    <groupId>com.gillion</groupId> 
    <artifactId>cache-manager</artifactId> 
    <version>2.0.1.2.RELEASE</version> 
    <classifier>pg</classifier> 
</dependency> 

代码

配置一级缓存并开启主键key值策略,在serviceImpl文件对应get(pk)、update()、saveOrUpdate()、delete()的方法会加上相应的缓存注解(@CacheEnable, @CacheUpdater, @CacheUpdater, @CacheDestroyer) ;

    @Override
    @CacheUpdater(value = "TestExam3101ghx", key = "#testExam3101ghx.testExam3101Id")
    public int update(TestExam3101ghx testExam3101ghx) {
        int result = -1;
        if (testExam3101ghx.getRowStatus() == BaseObject.ROWSTATUS_MODIFIED) {
            result = super.update(testExam3101ghx);
        }
        return result;
    }

    /**
     * GLPaaS生成
     * 根据主键获取TestExam3101GHX
     * 
     * @param testExam3101Id
     * @return
     */
    @Override
    @CacheEnable(value = "TestExam3101ghx", key = "#testExam3101Id")
    public TestExam3101ghx get(String testExam3101Id) {
        TestExam3101ghx testExam3101ghx = super.get(testExam3101Id);
        return testExam3101ghx;
    }

11
12
13
配置一级缓存并开启自定义key值策略,在update()、saveOrUpdate()、delete()的方法会加上相应的缓存注解(@CacheUpdater, @CacheUpdater, @CacheDestroyer) ;

    @Override
    @CacheUpdater(value = "TestExam3101ghx", key = "#testExam3101ghx.itemCode")
    public int update(TestExam3101ghx testExam3101ghx) {
        int result = -1;
        if (testExam3101ghx.getRowStatus() == BaseObject.ROWSTATUS_MODIFIED) {
            result = super.update(testExam3101ghx);
        }
        return result;
    }

    @Override
    @CacheUpdater(value = "TestExam3101ghx", key = "#testExam3101ghx.itemCode", condition = "#testExam3101ghx.rowStatus==16")
    public int saveOrUpdate(TestExam3101ghx testExam3101ghx) {
        int result = 0;
        if (testExam3101ghx.getRowStatus() == BaseObject.ROWSTATUS_DELETED) {
            this.delete(testExam3101ghx, true);
            result = 1;
        } else {
            if (testExam3101ghx.getRowStatus() == BaseObject.ROWSTATUS_ADDED || testExam3101ghx.getRowStatus()
                    == BaseObject.ROWSTATUS_MODIFIED) {
                result = super.saveOrUpdate(testExam3101ghx);
            }
        }
        return result;
    }

21
22
23
配置二级缓存,在一级缓存的基础上,如果有开启了主键key值策略,则会在get(pk)方法上多加一个注解@L2CacheEnable;

    @Override
    @L2CacheEnable
    @CacheEnable(value = "TestExam3101ghx", key = "#testExam3101Id")
    public TestExam3101ghx get(String testExam3101Id) {
        TestExam3101ghx testExam3101ghx = super.get(testExam3101Id);
        return testExam3101ghx;
    }

31
32
33

3. 常用扩展 3. 常用扩展

4. 版本更新 4. 版本更新