LIFERAY - 如何创建具有特定用户ID的用户?

时间:2015-02-25 14:00:58

标签: liferay liferay-6

我使用的是Liferay 6.2。

我需要在LR中添加一个具有特定用户ID的用户。 或者,使用其他值更新userID。 标准的addUser服务不提供指定userID甚至updateUser的可能性。

我想了解LR如何为新用户选择ID,以及我是否可以修改它。

谢谢!

2 个答案:

答案 0 :(得分:1)

与几乎所有数据库驱动的应用程序一样,它们按顺序分配。不,你不必选择任何东西,它将由框架来处理。它必须是唯一的,您不能添加具有相同ID的其他用户,并且您必须确保将来永远不会创建具有此ID的用户。因此:如果您使用已经发出的ID,则会有重复。如果您使用的还没有发布,那么将来会有一段时间重复,当id序列达到此值并且框架第二次分配相同的id时。

如果您的架构依赖于特定的ID,那么您的架构是错误的。重新思考问题并改变体系结构以及您已经完成的任何实现它。

答案 1 :(得分:1)

LR核心服务使用CounterService自动分配UserId(插件开发人员应该这样做)...所以所有生成代码都正确地包装在服务方法中,在创建用户时在不同的表中创建多个行

我同意之前的评论"如果您的架构依赖于特定的ID,那么您的架构是错误的......您可以使用小费。 你知道LR中的Expando吗? In允许您在数据库实体上添加虚拟列...通过使用它,您可以创建一个虚拟列" myExternalId"到表"用户_" (实体"用户")并在那里存储您需要的ID。然后修改代码以使用字段myExternalId而不是userId。