Hi
Sorry for being unclear, I will try to explain a little better what I
have done.
I have a fully working web application with the latest ibatis beta
3.0.0.200 and what I did was to add <cache type="db.TestCache" /> to a
mapper, TestCache implements org.apache.ibatis.cache.Cache but at the
moment it only have logging statements, if I'm not horribly mistaken I
will see a "in putObject()" if hasKey() is false but I don't.
My test class
public class TestCache implements Cache {
static Logger log = Logger.getLogger(TestCache.class);
private String id;
private ReadWriteLock readWriteLock = new ReentrantReadWriteLock();
/**
* @param id
*/
public TestCache(String id) {
super();
this.id = id;
}
@Override
public void clear() {
if (log.isDebugEnabled()) {
log.debug("in clear()");
}
}
@Override
public String getId() {
if (log.isDebugEnabled()) {
log.debug("in getId()");
}
return this.id;
}
@Override
public Object getObject(Object obj) {
if (log.isDebugEnabled()) {
log.debug("in getObject()");
}
return "";
}
@Override
public ReadWriteLock getReadWriteLock() {
if (log.isDebugEnabled()) {
log.debug("in getReadWriteLock()");
}
return this.readWriteLock;
}
@Override
public int getSize() {
if (log.isDebugEnabled()) {
log.debug("in getSize()");
}
return 0;
}
@Override
public boolean hasKey(Object obj) {
if (log.isDebugEnabled()) {
log.debug("in hasKey()");
}
return false;
}
@Override
public void putObject(Object arg0, Object arg1) {
if (log.isDebugEnabled()) {
log.debug("in putObject()");
}
}
@Override
public Object removeObject(Object arg0) {
if (log.isDebugEnabled()) {
log.debug("in removeObject()");
}
return null;
}
}
The logging shows
DEBUG java.sql.Connection - ooo Connection Opened
DEBUG db.TestCache - in getReadWriteLock()
DEBUG db.TestCache - in getReadWriteLock()
DEBUG db.TestCache - in hasKey()
DEBUG db.TestCache - in getReadWriteLock()
DEBUG java.sql.PreparedStatement - ==> Executing: (removed)
DEBUG java.sql.ResultSet - <== ResultSet Returned
DEBUG java.sql.ResultSet - <== Columns: (removed)
DEBUG java.sql.ResultSet - <== Row: (removed)
DEBUG java.sql.ResultSet - <== Row: (removed)
DEBUG db.TestCache - in getReadWriteLock()
DEBUG java.sql.Connection - xxx Connection Closed
Best Regards
Håkan Andersson
On 06/09/09 09:21, Clinton Begin wrote:
> I'm not quite sure about your question...
>
> * What are you referring to when you say "the custom cache" -- I'm
> assuming that's something you've implemented.
>
> * How are you hooking it into your statements?
>
> * Can you provide a simple unit test to demonstrate the behavior (e.g.
> you could just use a simple hashmap implementation).
>
> Cheers,
> Clinton
>
> 2009/9/3 Håkan Andersson <[email protected]
> <mailto:[email protected]>>
>
> Hi
>
> I have been playing a little with the custom cache in ibatis 3.0 Beta 3,
> but I can't see that the putObject is fired, is there any special
> condition that needs to be fulfilled before it will happen?
> hasKey, getObject and getReadWriteLock all get fired when it should but
> not putObject.
>
>
> Best Regards
> Håkan Andersson
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> <mailto:[email protected]>
> For additional commands, e-mail: [email protected]
> <mailto:[email protected]>
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]