00:00
来搞一搞GPA的二级缓存。那这个二级缓存呢?我们需要实现产品支持harmnet,当然支持使用二级缓存。首先进行一个测试。Public VO test second level test,我们来获取那个customer吧,等于nt manager.find.class。一看一眼,有没有一样?有。有,然后呢,我再获取一遍。一二,我来问大家,如果这个时候我去执行它的话,它会发几条色。
01:01
几条丝扣?一条circle吧,对吧,为什么呀,因为这个时候用的是GPA的一级缓存,对吗?啊,没问题,一级缓存。Customer哦,这个时候它有关联的谁呀,它有关联的这个order,我们不让它用关联那个order,我把这个给它搞一下。啊了是吧,使用对方进行关联,这个使用visit好再来。好了,只获取了customer,没问题,没问题。这个时候用的是GPA的一级缓存,那看看什么是二级缓存吧。提交事务,关闭entity manager。重新的获取manager开启事务。
02:02
这样的话应该发几条色啊。目前这个情况应该是发。两条吧,对吧,因为这个时候我这NTT1关,我这一开,这个时候很显然一级缓存里边那个内存已经被清了。或者是说这是两个ntt manager,他们即使是有一级缓存的话,也不是一起的,这个时候发了两条色口二级缓存的目的就是它可以跨entity manager。让我们这个测试方法只发送一条SQL语句,是这样吧。那首先我们先需要加入对应的配置。二级缓存相关这个配置呢,就是我们在harm里面的一个配置,那我把harm先前那个项目导进来了哈,把这个打开先前的配置。这个需要复制了。
03:03
CC,这些东西是记不住的是吧?T里边我们搞过。这个只改为true,叫启用二级缓存。二级缓存的产品。用的是e catch,所以说一会我得把e ke的包给它复制起来。CTRLC过来。稍后呢,我们还可能去使用这个什么呀,叫查询缓存加过来。这个也改为目前不行是吧。包没进来呢,我得把包先加进来。在这里去找hamlet的包。找到hamlet4.2.4。Lib。
04:00
Optional each catch。CRC。一。二三。当然还需要eh的配置文件吧?去找一下它的配置文件project ETC。CTRLC粘贴。可以了,那。Eh开始加进来了,但是你还得启用吧,现在跑的话还不好用。没有异常,那还是两条色口是吧,这个时候我们需要进行一些配置,配置谁呢?这里边儿我只配置这个卡就可以了。准配看一眼加一个注解。Cable。再来。
05:02
还不行,还需要有一个配置在这儿呢。GPA里边也需要配置一下如何来使用缓存。配。二级。二级缓存的策略叫。Catch mode out,斜杠,大家看有几个值是吧?我们暂时先选这个enable selective,一会我来解释什么意思,加上同时实体类上边加上这样的一个注解,再看效果。哎哟,出了一个异常。他说他是不合法的,哎呀,看一眼。这个不行。说明什么呀,说明这个配置要放在这个配置的后边。
06:05
再来。还不行。再往后放。这回可以了吧?这种。搜库语句是不是只有一条啊,这个时候这个eh开就好用了,或者说这个时候那个二级缓存就好用了,看到了吧,诶我们来解释一下这块这个配置。二级缓存的策略,它实际上的话呢,是有几个值可以说在这。这么一些值,CTRLC。如果要配置all的话,默认情况下所有缓存,所有设计类都将被缓存,Now所有的都不会缓存,配这个enable selective标识了这个注解的将被缓存。
07:00
配置disable。Selective。只有配了这个注解的。不被缓存,此外的都被缓存。还有一个。Unspecified,这个是GPA。将使用默认值。是吧,那么通常情况下的话呢,我们把这个值配为enable selective就可以了,因为开发的时候啊,不太可能所有的实体类都被缓存听懂了吧,所以说这是我们最常用的一个配置项。加上对应的注解,导入对应的价包。加入对应的配置就可以了。
我来说两句