I found a strange behaviour of EntityManager for the Entity Hierarchy using JOINED
strategy (I have not tested yet other strategies).
Let me assume that I have a hierarchy of joined entities derived from, for example, a
Vehicle base class:
| Vehicle
| / | \
| / | \
| / | \
| Ground Air Water
| / | \
| / | \
| / | \
| Airbus Boeing Cessna
| / | \
| / | \
| / | \
| B737 B747 B777
|
When I'm trying to remove a Vehicle entity, entity manager removes all related child
records from db (Vehicle->Air->Boeing->B747). It's OK.
When I'm trying to remove a B747 entity, entity manager also removes all ancestor
records from db (including Boeing, Air and Vehicle), but I don't need it :-(. I just
tried to remove only B747 record, why entity manager supposed that I need to remove all
ancestors too? I think that this approach is not right. Because, when I want to remove a
B747 record only from db (for example an ailiner with registration number XXXXXX), I
didn't want to remove all related ancestors include Vehicle.
When I want to remove just Boeing related records from my db, it means that I just wanted
to remove only Boeing records including all its childs (B737, B747 and B777), but not its
anchestors (Air and Vehicle).
if you think that my thougts on this subject is not on right way or do not cover OOP
concepts, please suggest me some resources and will try to study them to understand
inheritance from yours point of view.
--
rustam bogubaev
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4041664#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...