一個實體,這是代碼:EclipseLink - 檢測到執行過程中從該行讀取的主鍵被檢測爲空。主鍵不能包含空
@Id @Column(name = "\"ID_ORGANIZATION\"") private java.math.BigInteger idOrganization; @Id @Column(name = "\"Id\"") private java.math.BigInteger id;
這是查詢:
"SELECT "Id","FileName" FROM "File" WHERE "Id" IN (SELECT "IdFile" FROM "DocumentFile" WHERE "IdDocument"=? AND ID_ORGANIZATION=?) AND ID_ORGANIZATION=? ORDER BY "Id""
假設參數是正確的並且有正確的值 - 這是收到的異常「從行讀取的主鍵[Arr ayRecord( File.Id => 10228 File.FileName => 000350.pdf)]在執行查詢期間被檢測爲空。主鍵不能包含null。「
您可以看到文件實體的主鍵字段不爲空(File.Id => 10228)。在數據庫中,表中沒有任何主鍵字段空(顯然)。
我只是試圖設置參數「eclipselink.jpa.uppercase - 列名」在配置文件中MA =真它仍然無法正常工作。
我使用的Apache Tomcat 8,Java 8和SqlServer 14. Eclipselink版本是2.4.0和JPA版本是2.0.4。
謝謝。
爲什麼它在結果集中顯示爲「File.Id」而不是「Id」?他們不匹配,可能是爲什麼找不到「Id」字段 – Chris