Hi Daniel, I'm not sure if you've solved your problem yet, but from
the code you posted, I don't see where you established any
relationship between book1 and author1/author2. You had objects with
no relationship defined, so you can't actually remove book1 from
On Tue, May 6, 2008 at 4:17 AM, Daniel Doppmeier
> 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);
> Person author2 = (Person) context.newObject(Person.class);
> 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 : Fri May 09 2008 - 11:20:57 EDT