Buscar
Social
Ofertas laborales ES

Foro sobre Java EE > Configuración JPA para MySQL, PostgreSQL y MS SQL

Buen día amigos, acudo a ustedes en busca de consejo.

En nuestro equipo estamos desarrollando una aplicación con spring que está pensada para soportar 3 diferentes tipos de bases de datos (las mismas que el titulo del post). La aplicación utiliza JPA y Hibernate como "persistence provider".

El proyecto está en una fase muy temprana, por lo que por ahora simplemente he realizado pequeñas pruebas de escritura en la base de datos PostgreSQL haciendo uso de secuencias. El problema viene cuando pretendo persistir esas mismas entidades en MySQL y SQL Server ya que cada base de datos tiene mecanismos diferentes para manejar los campos autoincrementables, PostgreSQL utiliza Secuencias, SQL Server campos tipo Identity y MySQL utiliza autoincrementables por tabla por lo que la configuración de las entidades JPA varía de vendor a vendor. La pregunta es ¿hay alguna forma en que pueda utilizar el mismo código JPA para las tres bases de datos?

marzo 5, 2012 | Registered Commenterrogedelgado

Si estás empleando JPA 2 puedes utilizar @TableGenerator, es completamente portable entre bases de datos.

Otra alternativa es que tu generes tus propias llaves surrogadas en forma de UUIDs, lo cual tiene sus pro y sus contras. Encontrarás muchos debates al respecto en Google.

marzo 5, 2012 | Registered Commenterantoniovl

antoniovl gracias por tu respuesta, jugaré un poco con @TableGenerator para ver que pasa.

Saludos!

marzo 5, 2012 | Registered Commenterrogedelgado

Para generar las claves de forma automática, tanto MySQL, PostgreSQL y SQLServer soportan la generación con la estrategia IDENTITY.

marzo 6, 2012 | Unregistered CommenterSantiago Mosquera