Do I understand correctly....
The first row is the category, the next 20 rows are sub-categories?
In other words, a parent child relationship described as peers in the
result set?
Correct?
Clinton
On 4/21/05, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
>
> Hi there!
>
> Today I introduced OSCACHE in our SQLMap application, what a performace
> boost! :-)
>
> I have some heavy queries, doing a lot of stuff, some is' pretty static, so
> bringing
> in the cache is a nice feature.
>
> Anyway I have discovered something realy strange I think, not sure where the
> "error" or
> smart behavior is located, it's most unwanted since I have to write extra
> code to avoid it!
>
> I'm working with hierarchy of categories, pointing to itself. The
> CategoryBean is
> one of our value/transfer objects.
>
> --
>
> public class CategoryBean extends GeneralBean implements Serializable {
>
> private List subCategories; // List of CategoryBean's ....
> ..
>
> }
>
> ----
>
> So what I do, I query the database to retrieve two levels of the hierarchy
> in a Oracle
> database, returning 21 rows, where the first row is the root.
>
> After the rows are returned from this query:
>
> list =
> Collections.synchronizedList(sqlMap.queryForList("retrieveFirstPageCategories",
> null));
>
> (Have tried with/without synchronized to see if that helped =
> NOT :)
>
> The query using this cache:
>
> <cacheModel id="category-cache" type="OSCACHE">
> <flushInterval hours="1"/>
> <flushOnExecute statement="insertCategory"/>
> <flushOnExecute statement="updateCategory"/>
> </cacheModel>
>
> --
>
> I create the rootBean of the first row in the list, then add the other 20
> rows to the subCategories.
>
> So far so good, BUT when I run the query twice or more when the OSCACHE is
> up and running
> (sqlMap has returned the connection to the pool between the runs) .... I
> still get 21 rows from
> the same query back, BUT now the first one in the list (the rootBean)
> already have those 20 subCategories
> listed, I added in the first run ! That's impressive :-) but most unwanted
> behavior since I have to write extra
> code to not add those 20 rows again = 40 subCategories... Of course after 3
> runs, 60 subCategories etc.
>
> How can I avoid this "smart" behavior ??? hmm Is it a bug ? I guess not,
> something
> to tune in SQLMap, OSCACHE ? or ? hmmm Some guy here mention something about
> adding the hashCode() and equals() to my CategoryBean ... is that the rigth
> path to go ?
> He have already added the hashCode and equals, but a "simple" logic ...
> what's requried
> to avoid this smart behavior ?
>
>
> Thanks for any help!
>
>
> Best regards,
> Erlend Bj�rge