1

从我的 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;
    }
4

1 回答 1

1

试试这个。。

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

XYZDetails XYZDetails = XYZDetailsLocalServiceUtil.createXYZDetails(primaryKeyId);

使用XYZDetails Obj添加其他详细信息

例如

XYZDetails.setName("Name");

然后保存详细信息..

XYZDetailsLocalServiceUtil.addXYZDetails(XYZDetails);

希望这可以帮助你!

于 2012-10-22T04:51:46.500 回答