I use the Java code instead of Hibernate to keep the
parent-child relationship.
For example suppose I have such a relationship
Parent-->Level1-->Level2
The class implementation could be like this

public class parent {
  public void setChild(Level1 child){
    if (child.getParent()==null)
child.setParent(this);
     ...
  }
}

//this class is a component right now.
public class Level1 {
  public void setChild(Level2 child){
    if (child.parent()==null) child.setParent(this);
    ... 
  }
}
This implementation has two advantages: 
1) you does not rely the <parent> tag for parent-child
relationship mapping.
2) notice the following function call.
Parent p=new Parent();
Level1 c=new Level1();
p.setChild(c);
//the following call is not necessary with the above
implementation.
//c.setParent(p)
Session.save(p);

Of course, this is a workaround.

jason.



--- Viktor Szathmary <[EMAIL PROTECTED]> wrote:
> hi,
> 
> On Fri, 31 Jan 2003 16:02:49 +1100,
> [EMAIL PROTECTED] said:
> > 
> > private void setTopParent(TopLevelParent
> topParent) {
> >    this.parent = topParent.getComponent();
> > }
> > 
> > 
> > should do what you need ;)
> 
> ok, it does not :) unfortunately the call sequence
> is:
> 
> - nestedChild.setParent( toplevel )
> - nested.setParent( toplevel )
> - toplevel.setChild( nested )
> 
> so, at the point when the nestedChild's parent
> relationship is
> estabilished, the toplevel object's downward
> relationships are not
> established yet.
> 
> furthermore this whole thing makes things uglier,
> since as far the object
> model is concerned, a child now needs to have
> dependencies on it's
> toplevel parent (but this relationship might not
> even be fixed). also,
> due the the quirk i described above, the nested
> child would need to keep
> a reference to the toplevel object, so it can do
> late binding...
> 
> alltogether, i think the more useful behavior for
> composite-element
> parents' would be setting the immediate parent.
> perhaps make it an
> option... or pick based on the class specified, eg.
> <parent name="foo"
> class="foo.bar.Baz"/>.
> 
> best regards,
>     viktor
> 
> -- 
> http://fastmail.fm - Does exactly what it says on
> the tin
> 
> 
>
-------------------------------------------------------
> This SF.NET email is sponsored by:
> SourceForge Enterprise Edition + IBM + LinuxWorld =
> Something 2 See!
> http://www.vasoftware.com
> _______________________________________________
> hibernate-devel mailing list
> [EMAIL PROTECTED]
>
https://lists.sourceforge.net/lists/listinfo/hibernate-devel


__________________________________________________
Do you Yahoo!?
Yahoo! Mail Plus - Powerful. Affordable. Sign up now.
http://mailplus.yahoo.com


-------------------------------------------------------
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
_______________________________________________
hibernate-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/hibernate-devel


Reply via email to