2012-10-20 70 views
1

從我的liferay portlet插入第二次數據庫時遇到以下異常。在向MYSQL添加數據([JDBCExceptionReporter:76])時,鍵'PRIMARY'重複條目'0'

[JDBCExceptionReporter:76] Duplicate entry '0' for key 'PRIMARY'.(我認爲它是因爲我的主鍵值沒有得到自動遞增)

我覺得已經做了錯誤而自動遞增在我的自定義門戶的主鍵。但我不知道我必須做爲此而變化。

如果有人能指導我到哪裏做出改變來解決這個自動增量問題?

這是自動遞增的代碼被設置 嘗試{

 restVar = restaurantPersistence.create(counterLocalService 
       .increment(restaurant.class.toString())); 
    } catch (SystemException e) { 
     e.printStackTrace(); 
     return restVar = null; 
    } 

    try { 



     resourceLocalService.addResources(0,restParam.getGroupId(), restParam.getUserId(), 
       restaurant.class.getName(),restParam.getPrimaryKey(), false,true,true); 
    } catch (PortalException e) { 
     e.printStackTrace(); 
     return restVar = null; 
    } catch (SystemException e) { 
     e.printStackTrace(); 
     return restVar = null; 
    } 
+0

什麼是你用來插入的查詢的例子,這是MySQL,是否正確? – Kirk

+0

如果主列的自動增量設置爲True,您是否檢查數據庫? –

+0

好的..我已經解決了問題,同時manully做自動增量選項設置ticked.but我從來沒有面對這些問題之前從liferay方法插入.. –

回答

1

試試這個..

long primaryKeyId = CounterLocalServiceUtil.increment(ClassName.class.getName()); 

XYZDetails XYZDetails = XYZDetailsLocalServiceUtil.createXYZDetails(primaryKeyId); 

使用XYZDetails添加其他細節的OBJ

XYZDetails.setName("Name"); 

然後保存詳細..

XYZDetailsLocalServiceUtil.addXYZDetails(XYZDetails); 

希望這可以幫助你!

相關問題