Problém je v tom, že hibernace se pokouší uložit objekt vztahu, CellAtLocation instance, zatímco objekty potomků, Cell a/nebo Location instance ještě nepřetrvávají. Dětské objekty tedy nemají generated id s nimi spojené, a proto hibernace pro ně nemůže vypočítat hash.
Než se pokusíte uložit CellAtLocation zkuste nejprve uložit podřízené objekty voláním saveOrUpdate metoda na nich.