我写了一个钩子(类扩展自AutoLogin),在发出任何请求时都会调用它。在我的类的登录方法中,我有一个逻辑来验证随请求发送的请求参数。
现在如果身份验证被清除,我检查用户是否存在于 liferay 使用
UserLocalServiceUtil.getUserByScreenName(companyId, username)
现在,如果用户在 liferay 中不存在,我将用户添加到 liferay
user = UserLocalServiceUtil.createUser(contactId);
user.setFirstName(fname);
user.setLastName(lname);
user.setActive(true);
user.setAgreedToTermsOfUse(true);
user.setCreateDate(new Date());
user.setScreenName(username);
user.setCompanyId(companyId);
user.setPassword("test");
user = UserLocalServiceUtil.addUser(user);
现在在这里我看到用户正在创建。但是有时它会给出以下异常
com.liferay.portal.kernel.dao.orm.ORMException: org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch update
知道为什么会发生这种情况吗?此外,如果当我以管理员身份登录门户网站时用户创建成功,则此用户不会列在用户列表中。知道为什么会这样吗?我在某个地方出错了吗?