Há.. agora acho que achei o problema...
Use como chave tipos de dados classe como Integer ou Long.. e nao tipos primitivos.. int ou long
Inclusive é recomendado que todos os atributos das entidades usem tipos não primitivos.. Sempre classes
Os tipos primitivos não suportam valores null.. ou seja.. quando nao se tem valor.. é assumido zero.. e então é considerado que o Id está preenchido.. causando problemas...