> 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]>
