Combination View Flat View Tree View
Threads [ Previous | Next ]
toggle
Rubén Rodríguez
Referenciar entidades de Liferay en el service.xml
February 29, 2012 12:06 AM
Answer

Rubén Rodríguez

Rank: New Member

Posts: 6

Join Date: September 7, 2011

Recent Posts

Hola,

Estoy intentando crear una entidad y sus servicios asociados con el ServiceBuilder. Para columnas con tipos simples (long, int, String, etc.) no he tenido ningún problema, pero una de las columnas me gustaría que fuese una colección de usuarios (com.liferay.portal.model.User), es decir, una relación uno a muchos en la cual la parte de muchos son usuarios de Liferay (tamibén me serviría userIds, es decir, long).
He intentado hacerlo de la siguiente forma pero no funciona:
1
2<entity ....>
3    ...
4    <column name="user" type="Collection" entity="com.liferay.portal.model.User" />
5    ...
6    <reference package-path="com.liferay.portal.model" entity="User" />
7    ...
8</entity>


¿Estoy haciendo algo mal? ¿Alguien sabe cómo podría hacerlo?
Mikel Goikoetxea
RE: Referenciar entidades de Liferay en el service.xml
March 5, 2012 2:05 AM
Answer

Mikel Goikoetxea

Rank: Junior Member

Posts: 56

Join Date: March 16, 2010

Recent Posts

Buenas Rubén,

Te explico los pasos que deberías seguir:
  • En el service.xml:
    1<column name="users" type="Collection" entity="com.liferay.portal.model.User" mapping-key="userId" />
  • Ejecutar el build-service
  • Extender a continuación la clase del modelo: "...Impl" en "src...model.impl"
    1. Añadir:
      1private List<User> listadoUsuarios;
    2. Generar Getter y Setter
  • Ejecutar el build-service

Y ya tendrías tu objeto con un listado de usuarios. Eso si para asignarle un listado de usuarios a tu objetivo lo tendrías que hacerlo a mano.
Es decir:
1objeto.setListadoUsuarios(list);

Un saludo,

Mikel Goikoetxea Bilbao (@mgoibil)
B2B 2000