1

私はeclipseLinkで一般的ですが苛立たしい問題に直面しています。eclipseLinkを使用してこのクエリを実行しようとしています。

リストorganizationUnitEntityList=entityManager.createQuery( "select o from OrganizationUnitEntity o where o.unitId =?1")。setParameter(1、userTypeDomain.getUnitId())。getResultList(); OrganizationUnitEntity OrganizationUnitEntity = OrganizationUnitEntityList.get(0);

//1がパラメータとして渡されます

OrganizationUnitEntityは:

パブリッククラスOrganizationUnitEntity{

@Id
private int unitId;
private String unit;

    getters and setters...

}

しかし、私が得ている例外は次のとおりです。作業単位のクローンで検出されたヌルまたはゼロの主キー

さて、データベースにはnullまたは0の主キーがないのに、なぜこれが来るのでしょうか?

4

1 に答える 1

0

例外はどこで発生していますか?クエリを実行しているとのことですが、クエリを実行する前にフラッシュしようとしていますか?クエリの前にflushを呼び出してみることができます。これは、EMに0 /nullpkのエンティティが含まれているはずがない場合があるためです。クエリの後に発生している場合は、クエリのSQLがどのような結果を返すかを確認してください。EclipseLinkロギングを最高に設定してみてください。それでも問題が解決しない場合は、次のようなものを使用してキャッシュにあるものを印刷してください。JPAHelper.getEntityManager(em).getActiveSession()。getIdentityMapAccessor()。printIdentityMaps();

于 2012-04-09T13:56:39.143 に答える