I had the same idea a few weeks ago.
But my idea was not only to allow using foreign key but to create directly a
"BaseObjectProperty" which would be represented by a foreign key in the DB
but which would be mapped in HQL as a BaseObject...
Something like:
"select obj.linkedobj from BaseObject as obj"
This would be really really powerful...
I have been linking 2 objects using a LongProperty to represent the foreign
key but I can't write direct HQL requests...
regards
Pascal
On Thu, Oct 23, 2008 at 5:11 PM, Thomas McColgan <
thomas.mccolgan(a)googlemail.com> wrote:
I'm proposing to implement a new property type: A
foreign key,
analogous to the concept in relational databases. Together with custom
mapping, a property like this would make it possible to use Xwiki as a
frontend for a relational database, while making full use of the wikis
capabilities(configurability, history, etc).
The implementation would look similar to the existing "Database list"
on the outside, but it would make a lot more use of the databases
features. If A links to B, and someone deletes B the reference in A
would either be set to null, or the delete would be stopped, depending
on the configuration. It would also make it possible to adress
associated objects directly in hql.
The basic functionality can be emulated using DBList(adding a property
to one object by choosing from existing instances of another class),
but this is not useful if one wants to have "real" foreign key
behaviour in the wiki and the underlying DB. If there is a demand for
this I will be happy to contribute a patch once I am done, and I will
try make the code nice enough to submit. Otherwise I will probably
just make it as a hack to meet the exact need that I have...
Thomas
_______________________________________________
devs mailing list
devs(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/devs