Мы пытаемся внедрить около 100 тысяч пользователей в Liferay. Есть ли способ обновить все это в одном пакетном коммите вместо того, чтобы делать отдельные вызовы для добавления каждого пользователя?
Пакетная фиксация для добавления пользователей в Liferay
Ответы (2)
Думаю, да, это возможно.
Создайте собственный объект удаленной службы, такой как BulkUserServiceUtil.addUsers
, в нем вызовите стандартный метод UserLocalServiceUtil.addUser
для каждого пользователя.
При возврате из метода BulkUserServiceUtil
транзакция фиксируется.
person
Daniele Baggio
schedule
04.11.2015
+1 за то, что пошел по пути обслуживания. Не используйте вставки SQL: никогда не выполняйте запись в базу данных с помощью SQL, потому что Liferay нужно больше, чем просто то, что очевидно в пользовательской таблице. Это предупреждение отсутствует, иначе я бы полностью поддержал этот ответ.
- person Olaf Kock; 04.11.2015
@сандип:
Да, Liferay не предоставляет нам возможность добавлять/обновлять групповых пользователей, потому что после создания пользователя некоторые таблицы затрагиваются в этом, а также индексируются пользователем, но если вы хотите сделать это, у меня есть два предложения:
- Возьмите ссылку на опцию REINDEX для статей: в этом случае вы можете создать пакет диапазона счетчиков с каким-то значением и обновить/добавить этот пакет, но дело в том, что Liferay внутренне вызывает addUser по умолчанию. Так что это итеративный способ, который вы можете использовать.
- Без сервиса: создайте какой-нибудь пользовательский скрипт и один раз напрямую обратитесь к БД. которые создают пользователей, но в этом случае вам нужно позаботиться о других таблицах Liferay, в которые необходимо вставить идентификатор пользователя или соответствующие данные.
person
Ashish Dadhich
schedule
04.11.2015
Извините, но создать какой-нибудь пользовательский скрипт и сразу попасть в БД можно, но это очень плохая привычка для Liferay.
- person Daniele Baggio; 04.11.2015
Вызовите итерацию в 100 000 раз лучше всего, вы можете написать какой-нибудь код сортировки, который не сильно ударит по БД. Если Liferay не позволит, то мы должны сделать что-то другое.
- person Ashish Dadhich; 04.11.2015