在JPA中,如果我有两个实体类Account和CheckingAccount,那么CheckingAccount扩展Account.I有一个主键为10的CheckingAccount实体实例。
Cache c=//get a reference to caache from entity manager factory
c.evict(Account.class,10);
boolean flag1=c.contains(Account.class,10);
boolean flag2=c.contains(CheckingAccount.class,10);
两个标志的值都是假的。
答案 0 :(得分:0)
第一个c.contains(Account.class,10)
肯定是假的 - 你要么已经从缓存中移除了这个实体,要么它不存在。
如果此实体已被放入缓存中,则第二个c.contains(CheckingAccount.class,10)
可以为真。
采用第二个参数的evict
方法的版本仅适用于给定id的给定实体。它与Cache#evict(Class)
不同,后者从缓存中删除所有实体及其子类。