> I've just spent a month building two apps: ...hopes they are helpful to
others.

Well, I have only worked on one app; but I have been working on it for
several
months. ;)  That's not to say I consider my self an expert, but I have
utilized
most features of Torque - some, perhaps, in unique ways.

In the same spirit, I thought I'd share some of my "user" experience as
well.

> (1) Torque is really useful. It might even be the most useful part of
> Turbine.

Agreed. And not to "suck up", but I have also found the members of this
maillist
to be patient and helpful. Given a choice, I always choose Apache projects
over any other.

>
> (2) Decoupling from Turbine was a terrific idea.

After working on my app for several months, my boss asked what it would take
to switch databases. I delivered that day! Well, actually, the next day
because
I modified, tested, and took the rest of the day off ;)

>
> (3) One significant lack in Torque is a "Cursor" functionality, as
described
> in "The Design of a Robust Persistence Layer for Relational Databases"
> http://www.ambysoft.com/persistenceLayer.html.  I did a set of pages that
> displayed 20 records from a database at a time.  I had to do a select from
> the database each time and choose a subset of the Vector-- probably not
the
> most efficient technique.  A cursor functionality would have let me do one
> pull from the database and use that for the display of multiple subsets.

I'm not disagreeing with your cursor recommendation, but...

You could put the returned Vector into the User Object So the call
is only made once.

I ran into the same issue. I had added burden in that I have a table with
~2 million records. It was unreasonable for me to fetch
ALL the records...ever!

In the criteria, you can limit the number of records to return. So I added
methods
to the automatically generated classes which tracks the first and last index
returned by the query. I use it to fetch next-page, previous-page,
first-page,
and last-page. It works because my query does
NOT have an OrderBy phrase which would shuffle the record id's.

> (5) One easy thing to fix with Criteria.  Why can I not easily put in
> multiple clauses with the same column (e.g. "i > 1 AND i < 1).  I followed
> the recommendations on getting the criterion object and linking to that,
but
> it's a pain.  It's not clear to me why Criteria is based on a hash table
of
> the columns instead of a vector of some kind that allows additional
entries
> for columns.

This is a good candidate for a method to add to your extended om/map
classes.

>
> (6) The configuration options for building are not clearly documented, and
> caused me some initial confusion.

I found this frustrating to. If  I have any error in my properties,
I get a NullPointerException only after I make a call to the database
Objects
(because the Connection object is null). It would be nice if Torque.Init()
method would let me know that all my setting were cool or not.

Steve B.



--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to