Tengo un POJO específico que necesita persistir en una base de datos, el diseño actual especifica su campo como una columna de cadena única, y agregar campos adicionales a la tabla no es una opción.Serialización casera frente a Java
Es decir, los objetos deben ser serializados de alguna manera. Así que solo para la implementación básica fui y diseñé mi propia forma serializada del objeto, lo que significaba concatenar todos sus campos en una secuencia agradable, separados por un delimitador que elegí. Pero esto es bastante feo y puede causar problemas, por ejemplo, si uno de los campos contiene mi delimitador.
Así que probé la serialización básica de Java, pero a partir de una prueba básica que realicé, esto de alguna manera se convierte en una operación muy costosa (construir un ByteArrayOutputStream, un ObjectOutputStream, etc. para la deserialización).
¿Cuáles son mis opciones? ¿Cuál es la forma preferida para serializar objetos para ir a una base de datos?
Editar: esto va a ser una operación muy común en mi proyecto, por lo que los gastos generales deben mantenerse al mínimo, y el rendimiento es crucial. Además, las soluciones de terceros son buenas, pero irrelevantes (y generalmente generan gastos generales que trato de evitar)
He encontrado que XML y JSON son 5 veces más lentos que la serialización de Java. ¿Tiene algún ejemplo de dónde son más rápidos? –
La serialización Java incorporada también es JVM-specfic también.No es portátil de ninguna manera – mcjabberz
No hay nada en ese enlace que constituya un "buen argumento", o incluso un argumento. Solo una serie de comentarios desechables, no todos correctos. – EJP