从我的liferay portlet在数据库中插入第二次时出现以下异常。
[JDBCExceptionReporter:76] Duplicate entry '0' for key 'PRIMARY'.
(我认为这是因为我的主键值没有自动增加)
我认为在我的自定义portlet中自动递增主键时出错了。但我不知道我必须在哪里进行更改。
如果有人可以指导我在哪里进行更改以解决此自动增量问题?
这是自动增量设置的代码 试试{
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 :(得分:1)
试试这个..
long primaryKeyId = CounterLocalServiceUtil.increment(ClassName.class.getName());
XYZDetails XYZDetails = XYZDetailsLocalServiceUtil.createXYZDetails(primaryKeyId);
使用 XYZDetails Obj
添加其他详细信息例如
XYZDetails.setName("Name");
然后保存详细信息..
XYZDetailsLocalServiceUtil.addXYZDetails(XYZDetails);
希望这可以帮到你!!!