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:
Y VACGenerator.java :
Después de hacer build-service, al desplegar el servicio tengo la siguiente excepción:
Parece que no lo estoy configurando correctamente. ¿Alguien ha implementado con éxito un generador de id en el service-builder?
Muchas gracias.
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.
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