I have a couple of different systems modifying the database my cayenne code is
talking to. Every now and then I see behaviour that I think says that something
is being cached between database searches even though I create a new context
before each search:
ObjectContext context = cayenne.newContext(); (cayenne is a ServerRuntime
built like at the end of this message)
Even though I'm creating a new context before the search, could the server
runtime that the context is built from be caching objects? If so, should I wipe
the cache before the search? Or is there a way to make sure it doesn't work
with a cache?
thanks,
Rob
cayenneRuntime = ServerRuntime.builder()
.addConfig("cayenne-project.xml")
.addModule(binder ->
ServerModule.contributePkGenerators(binder)
.put(MySQLAdapter.class.getName(),
SmsPkGenerator.class))
.dataSource(DataSourceBuilder
.url(environment.getProperty("org.apache.cayenne.datasource.jdbc.url"))
.driver(environment.getProperty("org.apache.cayenne.datasource.jdbc.driver"))
.userName(environment.getProperty("org.apache.cayenne.datasource.jdbc.username"))
.password(environment.getProperty("org.apache.cayenne.datasource.jdbc.password"))
.pool(Integer.parseInt(Objects.requireNonNull(environment.getProperty("org.apache.cayenne.datasource.jdbc.minConnections"))),
Integer.parseInt(Objects.requireNonNull(environment.getProperty("org.apache.cayenne.datasource.jdbc.maxConnections"))))
.build())
.build();