Con JPA, DDL-generación 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 llegar a producir someString varchar(max) null?

Es posible mediante el uso de la length-atributo, o tengo que usar el columnDefinition-atributo?

InformationsquelleAutor Tobb | 2013-05-07

4 Comentarios

  1. 72

    Algunos meses han pasado, los nuevos conocimientos adquiridos, así que voy a responder a mi propia pregunta:

    @Lob
    @Column
    final String someString;

    los rendimientos de la mayoría de los resultado correcto. Con la versión de hbm2ddl que estoy usando, esta se transforma para el tipo de text con SqlServerDialect. Desde varchar(max) es la sustitución de texto en las versiones más recientes de SQL Server, con suerte, las nuevas versiones de hbm2ddl producirá varchar(max) en lugar de text para este tipo de asignación (estoy atascado en una bastante anticuada versión de Hibernación en el momento..)

    • Proporcionar una costumbre SQLServerDialect que se asigna un texto lob a varchar(max) también puede hacer el truco, no lo he probado, aunque.
  2. 0

    Desde length se define en la especificación JPA y javadocs como int tipo y max no es un int entonces es seguro asumir que usted está confinado a la columnDefinition almacén de datos dependiente de la ruta. Pero luego varchar(max) almacén de datos es dependiente de todos modos.

    • Otros lugares en el proyecto de grandes textos anotados con @Lob, lo que resulta en un text SQL-tipo de datos. Va a hacer lo mismo..
  3. 0

    Puede Utilizar este Código

    Código De Modelo:

    @NotNull  
    @Length(max = 7)  
    @Column(name = "Gender")  
    private String gender;

    SQL Salida es como-

    > gender varchar(7)
    • Usted no contesta la pregunta, sólo la repetición de partes de ella.

Dejar respuesta

Please enter your comment!
Please enter your name here