[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [eclipselink-users] Does a Join Table need an @ID annotation?
|
Hello Zarar,
You don't ever "need" the extra database field, it is just an easier way
out in some situations. In JPA 1.0, what you could create 3 extra basic
attributes on your Relation Entity that you would mark as @id, and you
would make them insertable/updateable =false, so that the relationships
control the database fields. You would then need to create a PK class
for the entity, which would be used with the EntityManager find method.
In JPA 2.0, there is the concept of Derived ids. This will allow you to
mark relationships as @Id, avoiding the extra basic mappings, but you
will still need to create a Pk class. This feature was implemented in
EclipseLink main and is in Tuesday night's build if you wished to test
it out.
Since EclipseLink will use the underlying database field values as the
primary key anyway, you don't even really need the PK class. You
potentially could create the descriptor for the Relationship object
yourself; not rely on annotation processing (and infact remove all the
annotations so they don't get processed) and create a descriptor and the
mappings in a customizer method. This would allow you to get by the
validation process of not having a PK class for the relation entity. It
gets a bit more complicated if you wish to have other entitys reference
this Relationship object, since you would also have to create these
mappings manually or get validation exceptions.
Best Regards,
Chris
Zarar Siddiqi wrote:
Hi,
I have three entities that have a many to many relationship with each
other. The relationship is stored in a join table which is also an
entity. So I have Entity1, Entity2 and Entity3 and a "relational"
entity called "EntityRel" which has references to the first three
entities (in DDL speak, it's a table with three foreign keys). I was
wondering why I MUST have an extra column in the EntityRel table
mapped to an @Id annotation in the class when I don't really need it
or will ever use it.
Thoughts?
Thanks,
Zarar
_______________________________________________
eclipselink-users mailing list
eclipselink-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/eclipselink-users