es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Tipo de bytearray compatible para Postgres, MySQL, HSQL

Tengo una columna que se ve así:

@Column(name = “somedata”, columnDefinition = “bytea”)
@Size(min = 1, max = 65535)
private byte[] somedata;

Esta definición de columna bytea funciona bien con PostgreSQL, pero para fines de prueba utilizo HSQL, que no lo admite, a menos que lo renombre a “blob”. Quiero utilizar MySQL como una segunda fuente de datos y tampoco admite el tipo de datos mencionado por HSQL.

Entonces, mi pregunta es: ¿hay una solución universal para el tipo de array de bytes que funcione para los tres orígenes de datos?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para una solución universal que pueda funcionar con los tres tipos de origen de datos (PostgreSQL, HSQL y MySQL), se puede utilizar el tipo de columna varbinary en lugar de bytea o blob. El tipo varbinary es compatible con los tres bases de datos y se utiliza para almacenar datos binarios de longitud variable.

    Para implementar esto en tu código, modificarías la definición de la columna de la siguiente manera:

    @Column(name = "somedata", columnDefinition = "varbinary(65535)")
    @Size(min = 1, max = 65535)
    private byte[] somedata;
    

    Esto asegurará que la columna pueda ser utilizada con los tres tipos de origen de datos sin problemas.

Comments are closed.