many-to-many mapping resulting in incomplete SQL queries

From: Daniel Doppmeier (ddoppme..ebitec.uni-bielefeld.de)
Date: Tue May 06 2008 - 04:17:40 EDT

  • Next message: Andrus Adamchik: "Re: Specifying PK when creating a new object in DB generated PK mode"

    Hello everyone!

    I am new to cayenne and experiencing some problems, when modelling a
    many-to-many relationship. After I could not solve the problem for an
    application I am writing at the moment, I set up the following example
    application, which is producing the same problems:

    I modelled a small bookstore application, with two tables "Book" and
    "Person". After that I created a join table "Person_is_author_of_book",
    to map from "Person" entries to "Book" entries. On the object side of
    the application, this would mean, that every book may have several
    authors, whereas one author may have written more than one book.

    Inserting and fetching data from the DB seems to work just fine, but
    when it comes to deletion there occures my problem. This is what happens
    in my code:

           DataContext context = DataContext.createDataContext();
          
           Book book1 = (Book) context.newObject(Book.class);
           book1.setTitle("The secret life of Donald D");

           Person author1 = (Person) context.newObject(Person.class);
           author1.setName("Huey");
          
           Person author2 = (Person) context.newObject(Person.class);
           author2.setName("Dewey");

           context.commitChanges();

           author1.removeFromBooks(book1);
           context.commitChanges();

    Everything is fine until the second commitChanges(), when I try to
    delete book1 from author1's list.
    This is what the logger says about it:

    INFO QueryLogger: --- will run 1 query.
    INFO QueryLogger: --- transaction started.
    INFO QueryLogger: DELETE FROM Person_is_author_of_book WHERE
    INFO QueryLogger: *** error.

    As you can see, there is missing some SQL syntax after the WHERE clause.
    Does anybody have an idea, what may cause this malformed SQL?

    I am using the latest stable cayenne version 2.0.4, MySQL 5.0.51a-3ubuntu5 and java "1.6.0_06"

    Thanks a lot for any help!



    This archive was generated by hypermail 2.0.0 : Tue May 06 2008 - 04:18:16 EDT