Foros de discusión

Service-builder: customizar el generador de id.

Serguei Carrascosa Cervilla, modificado hace 6 años.

Service-builder: customizar el generador de id.

New Member Mensajes: 6 Fecha de incorporación: 18/03/16 Mensajes recientes
Buenos días,

Estoy tratando de implementar un generador de claves primarias que devuelva un String siguiendo el patrón "VAC1, VAC2, VAC3,...". Según la definicion del service-builder puedes configurarlo de la siguiente manera:


<column name="id" type="String" primary="true" id-type="class" id-param="com.liferay.counter.service.persistence.VACGenerator" />


Y VACGenerator.java :


public class VACGenerator implements IdentifierGenerator {
	
	private final static String COD_CERT_PREFIX = "VAC";
	
	@Override
	public Serializable generate(SessionImplementor arg0, Object arg1) throws HibernateException {
		
		Certificacion certificacion = CertificacionLocalServiceUtil.getLast();
		String codiCertificacio = COD_CERT_PREFIX + 1;
		if (certificacion != null) {
			String codi = certificacion.getCodigoCertificacion();
			int numCertif = Integer.parseInt(codi.substring(3));
			codiCertificacio = COD_CERT_PREFIX + ++numCertif;
		}
		return codiCertificacio;
	}
}


Después de hacer build-service, al desplegar el servicio tengo la siguiente excepción:

Caused by: org.hibernate.MappingException: Could not interpret id generator strategy [com.liferay.counter.service.persistence.VACGenerator]
	at org.hibernate.id.factory.DefaultIdentifierGeneratorFactory.getIdentifierGeneratorClass(DefaultIdentifierGeneratorFactory.java:137)
	at org.hibernate.id.factory.DefaultIdentifierGeneratorFactory.createIdentifierGenerator(DefaultIdentifierGeneratorFactory.java:108)
	... 45 more


Parece que no lo estoy configurando correctamente. ¿Alguien ha implementado con éxito un generador de id en el service-builder?

Muchas gracias.
thumbnail
Eduardo P. García, modificado hace 3 años.

RE: Service-builder: customizar el generador de id. (Respuesta)

Regular Member Mensajes: 157 Fecha de incorporación: 16/03/12 Mensajes recientes
Esta consulta fue resuelta en el siguiente hilo: https://web.liferay.com/es/community/forums/-/message_boards/message/95067464