JPA - comment définir la colonne string à varchar (max) dans DDL
avec JPA , génération DDL pour l'attribut:
@Column
final String someString;
sera someString varchar(255) null
@Column(length = 1337)
final String someString;
donnera someString varchar(1337) null .
mais comment puis-je l'obtenir pour produire someString varchar(max) null ?
est-il possible d'utiliser l'attribut length , ou dois-je utiliser l'attribut columnDefinition ?
3 réponses
quelques mois ont passé, de nouvelles connaissances acquises, donc je vais répondre à ma propre question:
@Lob
@Column
final String someString;
donne le résultat le plus correct. Avec la version de hbm2ddl que j'utilise, elle sera transformée en text avec SqlServerDialect . Depuis varchar(max) est le remplacement de text dans les nouvelles versions de SQL Server , si tout va bien, les nouvelles versions de hbm2ddl donnera varchar(max) au lieu de text pour ce type de cartographie (je suis coincé à une version assez datée D'hibernation en ce moment..)
étant donné que length est défini dans les spécifications JPA et javadocs comme int type et max n'est pas un int alors il est sûr de supposer que vous êtes consignée à la columnDefinition route dépendante de la base de données. Mais varchar(max) est de toute façon dépendant des données.
utiliser @Size(max = 1337) . Il ne génère varchar(1337)