Hi,
I´d like to enable OpenJPA´s query cache in a selective way, i. e. it
should be disabled unless I enable it explicitly using
query.getFetchPlan().setQueryResult(true).
I´ve figured out that this requires
FetchConfigurationImpl$ConfigurationState#queryCache to be set to false by
default, however, there does not seem to be a configuration property for
this.
So I ended up subclassing JDBCBrokerFactory and configure this via property
openjpa.BrokerFactory (see code below).
However I wonder if there is an easier way to achieve this?
Thanks and best regards,
Jörn
Code:
<property name="openjpa.BrokerFactory"
value="de.dwpbank.wp2d.wprecon.model.cache.CustomJDBCBrokerFactory" />
public class CustomJDBCBrokerFactory extends JDBCBrokerFactory {
public CustomJDBCBrokerFactory(JDBCConfiguration conf) {
super(conf);
@Override
protected StoreManager newStoreManager() {
return new JDBCStoreManager() {
@Override
public FetchConfiguration newFetchConfiguration() {
return
super.newFetchConfiguration().setQueryCacheEnabled(false);
};
public static CustomJDBCBrokerFactory newInstance(ConfigurationProvider
cp) {
JDBCConfigurationImpl conf = new JDBCConfigurationImpl();
cp.setInto(conf);
return new CustomJDBCBrokerFactory(conf);
I´d like to enable OpenJPA´s query cache in a selective way, i. e. it
should be disabled unless I enable it explicitly using
query.getFetchPlan().setQueryResult(true).
I´ve figured out that this requires
FetchConfigurationImpl$ConfigurationState#queryCache to be set to false by
default, however, there does not seem to be a configuration property for
this.
So I ended up subclassing JDBCBrokerFactory and configure this via property
openjpa.BrokerFactory (see code below).
However I wonder if there is an easier way to achieve this?
Thanks and best regards,
Jörn
Code:
<property name="openjpa.BrokerFactory"
value="de.dwpbank.wp2d.wprecon.model.cache.CustomJDBCBrokerFactory" />
public class CustomJDBCBrokerFactory extends JDBCBrokerFactory {
public CustomJDBCBrokerFactory(JDBCConfiguration conf) {
super(conf);
@Override
protected StoreManager newStoreManager() {
return new JDBCStoreManager() {
@Override
public FetchConfiguration newFetchConfiguration() {
return
super.newFetchConfiguration().setQueryCacheEnabled(false);
};
public static CustomJDBCBrokerFactory newInstance(ConfigurationProvider
cp) {
JDBCConfigurationImpl conf = new JDBCConfigurationImpl();
cp.setInto(conf);
return new CustomJDBCBrokerFactory(conf);