Hello,

my name is Daniel. I have just joined the list to ask one
or two related questions:

I would appreciate if Torque saved an object tree for me -
e.g. I have a Book with two Authors and want to call

 book.addAuthor(a1);
 book.addAuthor(a2);
 BookPeer.doSave(book);    // should insert or update the book and both
authors

For this purpose, and as it seems that this feature is not
implemented in Torque, I wrote the doSave(Book) method in BookPeer,
like this:

 public static void doSave(Book book) throws TorqueException {
    if (matchEinzel.isNew()) {
        BookPeer.doInsert(book);
    } else {
        if (book.isModified()) {
            BookPeer.doUpdate(matchEinzel);
        }
    }
    ObjectKey key = book.getPrimaryKey();
    List authors = book.collAuthors;
    
    // do the same for a List of author objects...
    doSaveAuthors(key, authors);
 }

That works quite well, but when I read a simple object from
DB and call the doSave() on it immediately, the object has
"true" as it's modified flag, what results in an (unwanted)
update in the above doSave()-method:

 Book oldBook = BookPeer.retrieveByPK(123);
 BookPeer.doSave(oldBook);    // performs an Update!


This can be fixed by overriding a BasePeer's method
row2Object(Record, int, Class) like this - what I don't want
to do for any generated class, as you may have guessed... ;-)

 public static Book row2Object(Record row, int offset, Class cls)
 throws TorqueException
 {
    Book obj = BaseBookPeer.row2Object(row, offset, cls);
    obj.setModified(false);
    return obj;
 }

So, finally my 2 questions:
- Did I miss a Torque feature that saves an object tree for me?
- Isn't it just wrong that a row being read freshly from DB has
  the modified-flag set to true?


Greetings from Munich, Germany,

Daniel

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

Reply via email to