在更新方法Liferay中获取用户地址
我想知道地址什么时候被更改,然后我实现了一个类来覆盖地址的更新方法。 该类工作正常,但当我尝试获取无法访问的登录用户的所有地址时,我只获取管理员地址 这是我获取地址的代码:在更新方法Liferay中获取用户地址,liferay,listener,Liferay,Listener,我想知道地址什么时候被更改,然后我实现了一个类来覆盖地址的更新方法。 该类工作正常,但当我尝试获取无法访问的登录用户的所有地址时,我只获取管理员地址 这是我获取地址的代码: List<Address> userAddresses = AddressLocalServiceUtil.getAddresses(user.getCompanyId(), Contact.class.getName(), user.getContactId()); for(Address userAddres
List<Address> userAddresses = AddressLocalServiceUtil.getAddresses(user.getCompanyId(), Contact.class.getName(), user.getContactId());
for(Address userAddress : userAddresses) {
System.out.println(userAddress);
}
List userAddresses=AddressLocalServiceUtil.getAddresses(user.getCompanyId(),Contact.class.getName(),user.getContactId());
for(地址用户地址:用户地址){
System.out.println(用户地址);
}
如果我在其他部分执行此代码,它工作正常,并且我获得了用户地址,那么它在重写更新的类中不工作
这是我的班级:
public class MyAddressLocalServiceImpl extends AddressLocalServiceWrapper {
public Address updateAddress(long addressId, String street1, String street2, String street3, String city, String zip, long regionId, long countryId, int typeId, boolean mailing, boolean primary) {
System.out.println("Actualizar una dirección");
try {
Address oldAddress = AddressLocalServiceUtil.getAddress(addressId);
Address aux = getWrappedService().updateAddress(addressId, street1, street2, street3, city, zip, regionId, countryId, typeId, mailing, primary);
System.out.println("Old Address " + oldAddress);
System.out.println("New Address " + aux);
long id_user = AddressLocalServiceUtil.getAddress(addressId).getUserId();
User user = UserLocalServiceUtil.getUser(id_user);
System.out.println("Obtenim les addresses");
List<Address> userAddresses = AddressLocalServiceUtil.getAddresses(user.getCompanyId(), Contact.class.getName(), user.getContactId());
for(Address userAddress : userAddresses) {
System.out.println(userAddress);
}
} catch (PortalException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SystemException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
公共类MyAddressLocalServiceImpl扩展了AddressLocalServiceWrapper{
公共地址更新地址(长地址ID、字符串street1、字符串street2、字符串street3、字符串城市、字符串邮政编码、长地区ID、长国家ID、整型ID、布尔邮寄、布尔主地址){
System.out.println(“实现目标”);
试一试{
Address oldAddress=AddressLocalServiceUtil.getAddress(addressId);
地址aux=getWrappedService().updateAddress(地址ID,街道1,街道2,街道3,城市,邮编,地区ID,国家ID,类型ID,邮寄,主要);
System.out.println(“旧地址”+旧地址);
System.out.println(“新地址”+aux);
long id_user=AddressLocalServiceUtil.getAddress(addressId).getUserId();
User User=UserLocalServiceUtil.getUser(id\u User);
System.out.println(“Obtenim les地址”);
List userAddresses=AddressLocalServiceUtil.getAddresses(user.getCompanyId(),Contact.class.getName(),user.getContactId());
for(地址用户地址:用户地址){
System.out.println(用户地址);
}
}捕获(PortalException e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}捕获(系统异常e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
}
有什么想法吗
非常感谢。地址表存储添加该地址的用户的用户ID和用户名,这就是您收到偏差的原因 从地址表中,您可以使用classpk字段作为contactId,而不是从用户处获取contactId