java - example - JPA-Cómo configurar la columna de cadena a varchar(max) en DDL
spring with sql server example (3)
Como la length
se define en la especificación JPA y javadocs como int
type y max
no es una int
, es seguro asumir que está consignado a la columnDefinition
dependiente del datastore. Pero, de todos modos, varchar(max)
depende del almacén de datos.
Con JPA , generación DDL para el atributo:
@Column
final String someString;
será someString varchar(255) null
@Column(length = 1337)
final String someString;
producirá someString varchar(1337) null
.
Pero, ¿cómo puedo conseguir que produzca someString varchar(max) null
?
¿Es posible usar el atributo de length
, o necesito usar la columnDefinition
Definición columnDefinition
atributo?
Han pasado algunos meses, se han adquirido nuevos conocimientos, así que responderé a mi propia pregunta:
@Lob
@Column
final String someString;
produce el resultado más correcto. Con la versión de hbm2ddl
que estoy usando, esto se transformará en text
tipo con SqlServerDialect
. Como varchar(max)
es el reemplazo del text
en versiones más nuevas de SQL Server , con suerte, las versiones más nuevas de hbm2ddl
producirán varchar(max)
lugar de text
para este tipo de mapeo (estoy atascado en una versión bastante anticuada de Hibernate en el momento..)
Use @Size(max = 1337)
. Genera varchar(1337)