1
我試圖使用JBossCache作爲JPA/Hibernate二級緩存提供程序來緩存重複調用的查詢。查詢返回特定類型的實體,我們稱它爲FooType。瞭解JBossCache - 緩存具有多種關聯的對象圖
FooType如下所示:
@Entity(name = FooType)
@Cache(usage = CacheConcurrencyStrategy.TRANSACTIONAL)
public class FooType {
protected BarType barType;
@ManyToOne(targetEntity = BarType.class, cascade = {
CascadeType.ALL
})
BarType getBarType() {
return barType;
}
}
所以,Footype有許多-to-one關聯。現在,當我調用查詢時,似乎只有非常小的一部分放入緩存中。我認爲原因是因爲我沒有用@Cache標記標記關聯。我對麼?
但真正的問題是:
棒型也有協會的屈指可數,而這些返回的對象,它也提供協會等,建立協會的大圖。現在,我需要
一)註釋所有這些類和
B)還註釋協會
爲了要緩存整個查詢?
所以,如果我做了查詢對象緩存,我並不需要做實體可緩存返回? – helpermethod
問題是,初始化查詢被緩存,但Hibernate也創建了一個巨大的額外查詢,它遵循初始查詢。這些不會被緩存。 – helpermethod
您需要查詢都是可緩存的,實體需要使用@Cache進行標記。不知道我明白這些附加查詢來自哪裏。他們是由你創造的嗎?或由Hibernate內部?如果他們是內部的,你不能對AFAIK做任何事情。 –