You might want to look at the cascade type on each end of the relationship. Is this inheritance parent-child, or a one-to-many parent-child.
You may want to ensure that both sides of the relationship are being saved. Here's an example from a tutorial on mapping one to many relationships. The Team and Player scenario should be universally understandable:
http://jpa.ezhibernate.com/Javacode/learn.jsp?tutorial=18mappingonetomanyassociations
Code:
public static void main(String args[]){
HibernateUtil.recreateDatabase();
Session session=HibernateUtil.beginTransaction();
Team team = new Team();
Player p1 = new Player();
Player p2 = new Player();
session.save(team);
session.save(p1);
session.save(p2);
team.setName("Pickering Atoms");
p1.setNickName("Lefty");
p1.setTeam(team);
p2.setNickName("Blinky");
p2.setTeam(team);
HibernateUtil.commitTransaction();
}
http://jpa.ezhibernate.com/Javacode/learn.jsp?tutorial=18mappingonetomanyassociations