2012-04-06 5 views
1

Ich stehe vor einem häufigen, aber irritierenden Problem in eclipseLink. Ich versuche nur, diese Abfrage mit Eclipse auszuführen:..Primärschlüssel Null oder Null in Arbeitseinheit gefunden Klon

Liste organizationUnitEntityList = EntityManager.createQuery ("? Wählen o aus OrganizationUnitEntity o wo o.unitId = 1") setParameter (1, userTypeDomain.getUnitId()) getResultList(); OrganizationUnitEntity organizationUnitEntity = organizationUnitEntityList.get (0);

// 1 wird als Parameter übergeben

OrganizationUnitEntity ist:

public class OrganizationUnitEntity {

@Id 
private int unitId; 
private String unit; 

    getters and setters... 

}

Aber die Ausnahme, die ich erhalte ist: Null oder Primärschlüssel Null in Arbeitseinheit Klon

gefunden

Jetzt, da es keinen Null- oder 0 Primärschlüssel in der Datenbank gibt, warum kommt dieser?

+0

Haben Sie die anderen Tabellen überprüft? Es könnte eine Null oder Null PK von einem Fremdschlüssel sein ... vielleicht? –

+0

Nein ... es gibt keinen solchen Fall ... Ich habe gerade mit der Entwicklung der App begonnen und es gibt nur einen Eintrag in jeder Tabelle mit pk als 1 – user746458

Antwort

0

Wo tritt die Ausnahme auf - Sie erwähnen, dass Sie eine Abfrage ausführen, aber versucht sie vor der Ausführung der Abfrage zu löschen? Sie können versuchen, flush vor Ihrer Abfrage aufzurufen, da Ihr EM möglicherweise eine Entität mit einem 0/null-pk enthält, wenn dies nicht der Fall ist. Wenn es nach der Abfrage auftritt, überprüfen Sie, welche Ergebnisse die SQL aus der Abfrage zurückgeben würde. Versuchen Sie, die EclipseLink-Protokollierung auf den Feinsten einzustellen: und wenn Sie weiterhin Probleme haben, drucken Sie den Inhalt des Caches mit etwas wie: JPAHelper.getEntityManager (em) .getActiveSession(). GetIdentityMapAccessor(). PrintIdentityMaps();