I have two really simple objects and one object should contain the other one in an \"one-to-many\" relation in a set. The objects get inserted correctly in the database, but
It's quite simple: you never initialize the testObj field in Children (which should be named Child, BTW). Children.testObj is the owner of the association, and is the field that is mapped to the join column, so if it's null, the join column will be null.
I had a similar problem which i solved by calling setter of the owner side. The 2 metods seting and adding the children to the TestObj should be altered like this, so that the TestObj is initialized at the owner side:
public synchronized void setChildren(Set<Children> children)
{
this.children = children;
for(Children child : children)
{
// initializing the TestObj instance in Children class (Owner side) so that it is not a null and PK can be created
child.setTestObj(this);
}
}
The second method:
public void addChildren(Children child)
{
children.add(child);
//Intializing the TestObj instance at the owner side
child.setTestObj(this);
}