2014-06-06 85 views
0

JPA(EclipseLink)和Oracle數據庫存在一個奇怪的問題。eclipselink oracle標識符太長ORA-00972

以下JPQL預計:

SELECT w 
    FROM WfmStatusGroup w 
     LEFT JOIN w.statuses ws 
     LEFT JOIN ws.wfmTransList1 wt 
WHERE wt.wfmWorkflowId = :wfmWorkflowId 

但我發現了以下錯誤:在輸出端產生

ORA-00972: Identifier is too long

而且下面的查詢。

SELECT t1.WFM_STATUS_GROUP_ID, t1.SYSTEM_ID, t1.WFM_STATUS_GROUP_DESC, 
     t1.WFM_STATUS_GROUP_NAME 
    FROM VERITECH_DEMO.WFM_STATUS_GROUP t1 
    LEFT OUTER JOIN (WFM_STATUS_GROUP_WFM_STATUS t3 
       JOIN VERITECH_DEMO.WFM_STATUS t0 
        ON (t0.WFM_STATUS_ID = t3.statuses_WFM_STATUS_ID)) 
      ON (t3.WfmStatusGroup_WFM_STATUS_GROUP_ID = t1.WFM_STATUS_GROUP_ID) 
    LEFT OUTER JOIN (WFM_STATUS_WFM_TRANSITION t4 
       JOIN VERITECH_DEMO.WFM_TRANSITION t2 
        ON (t2.WFM_TRANSITION_ID = t4.wfmTransList1_WFM_TRANSITION_ID)) 
      ON (t4.WfmStatus_WFM_STATUS_ID = t0.WFM_STATUS_ID) 
WHERE (t2.WFM_WORKFLOW_ID = ?) 

任何建議?

回答

0

此錯誤指出您有一個字段名稱或一個大於oracle可處理的對象名稱,例如,此wfmTransList1_WFM_TRANSITION_ID有31個字符,而oracle只接受30個字符作爲字段名稱。

這裏看到這個答案的SO:Change table/column/index names size in oracle 11g or 12c

+0

關於這個答案,也不可能改變文字大小,對不對? –

+0

是的,你不能在oracle上執行此操作 –

+0

wfmTransList1_WFM_TRANSITION_ID從JPA生成一個自動生成的代碼。我不需要最短的實體名稱。有什麼辦法嗎? –