Проблемът е, че hibernate се опитва да запази обекта на връзката, CellAtLocation например, докато децата обекти, Cell и/или Location екземплярите все още не са запазени. По този начин дъщерните обекти нямат generated id са свързани с тях и следователно hibernate не може да изчисли хеша за тях.
Преди да опитате да запазите CellAtLocation например, опитайте първо да запазите дъщерните обекти, като извикате saveOrUpdate метод върху тях.