with example data conexion conectar con java sql-server hibernate jpa ddl

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)