FAQ

This would sound cool to me too, but from the Cayenne
documentation example, this approach seems to have the
problem that Java has single inheritance :(.
If there's only one such table than it would work
(single inheritance).
E.g. In the above example, by doing a superclass to
point to the "tag" table(Tag entity), called "Taggable". All
entities that would like to have "tag"s would just need to
extend the "Taggable" entity.
The big problem is how to do it if there are more
tables like that in the scheme :(.

Yes, you get to have exactly one Tag concept since you can
have only one superclass. Otherwise you have to model this
as an interface, but there is no support for that in
Cayenne.
This would have been my first choice too, but I saw no support in Cayenne Modeler for entering additional interfaces - only one super class :(.
Choice 2:
Just do exactly what you are doing and fake the
relationships. Subclass CayenneContext so that you
can
create the appropriate setters and getters to make
this all
work. We do this ourselves and I might be able to
dig up
some code if you get stuck.
Are there any examples about this around?
You could download the onCourse server from our website
(www.ish.com.au/oncourse) and open it up.
This looks like a very nice application :).

(I haven't seen too many cayenne based applications since
some of the links from http://cayenne.apache.org/success-stories.html
don't work or they don't point to a download-able application :( )
Inside there you'll
find our Cayenne model for the application (use version 3
modeler to look at it). And in there, some tables called
Node and NodeRelation are of interest to you. In the
application itself, we use this to display 'Tags' attached
to lots of different entities: courses, students, etc.

Here's a snippet of code which then let's you find the
related records. In this Taggable is the interface, Node the
"Tag" entity and NodeRelation the join to other entities.
Interesting idea.

Thank you very much for the detailed example.
I'll try to model like you describe.

Joseph.

Search Discussions

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupuser @
categoriescayenne
postedApr 2, '09 at 10:53a
activeApr 2, '09 at 10:53a
posts1
users1
websitecayenne.apache.org

1 user in discussion

Joseph Schmidt: 1 post

People

Translate

site design / logo © 2022 Grokbase