2016-09-16 1 views
0

Je rencontre des bogues avec un type de colonne 'Text' généré dans SQL Server. Les annotations de même classe fonctionnent correctement avec PostgreSQL.Comment générer une colonne varchar (max) dans SQL Server avec JPA EclipseLink

J'ai essayé:

@Lob 
@Column(name = Columns.largeJsonText) 
protected String largeJsonText; 

et ceci:

@Lob 
@Column(name = Columns.largeJsonText, length = 1048576) 
protected String largeJsonText; 

Mais les deux génèrent type de colonne 'texte'.

J'utilise la version suivante d'Eclipse Lien:

 <groupId>org.eclipse.persistence</groupId> 
     <artifactId>eclipselink</artifactId> 
     <version>2.6.2</version> 

Est-il possible de générer une colonne VARCHAR (MAX) pour SQL Server? Comment? Merci!

+0

Avez-vous essayé spécifier le columnDefinition = "VARCHAR ()"? Cela permet d'utiliser des définitions de colonne spécifiques à la base de données. Vous pouvez essayer de spécifier la valeur de longueur et de supprimer également l'annotation Clob. Sinon, vous devrez entrer dans l'API spécifique à EclipseLink pour modifier le type renvoyé pour la définition Clob dans la sous-classe DatabasePlatform spécifique utilisée pour votre base de données. Vous pouvez définir votre propre sous-classe qui remplace la valeur (voir la méthode buildFieldTypes) ou la modifier dans un personnaliseur de session. – Chris

+0

Ok, c'est ce dont j'avais besoin. Je n'ai pas trouvé la bonne documentation. Pourriez-vous s'il vous plaît fournir un lien pour approfondir le sujet? Merci! –

Répondre