Works now. Turns out component objects must be saved separately from object containing them by session.save(...).