Champ de texte utilisant Hibernate Annotation

J’ai du mal à définir le type d’une chaîne, ça se passe comme

public void setTextDesc(Ssortingng textDesc) { this.textDesc = textDesc; } @Column(name="DESC") @Lob public Ssortingng getTextDesc() { return textDesc; } 

et ça n’a pas fonctionné, j’ai vérifié le schéma mysql et il rest varchar (255), j’ai aussi essayé,

 @Column(name="DESC", length="9000") 

ou

 @Column(name="DESC") @Type(type="text") 

J’essaie de faire du type TEXTE, toute idée serait bien appréciée!

Vous avez dit “J’ai vérifié le schéma mysql et il rest varchar (255)” – vous attendiez-vous à ce qu’Hibernate modifie automatiquement votre firebase database? Ce ne sera pas Même si vous avez défini hibernate.hbm2ddl.auto , je ne pense pas qu’Hibernate modifierait la définition de colonne existante.

Si vous deviez générer un nouveau script de création de firebase database, @Lob devrait générer une colonne de type “TEXT” si vous ne spécifiez pas explicitement la longueur (ou, si vous le faites, c’est moins que 65536). Vous pouvez toujours forcer cela en déclarant explicitement le type dans l’annotation @Column , mais gardez à l’esprit que ce n’est pas portable entre les bases de données:

 @Column(name="DESC", columnDefinition="TEXT") 

Il existe un moyen de définir le mappage par défaut pour que le type “Ssortingng” soit défini sur le type “text” dans la firebase database.

Enregistrez le fichier suivant dans le package où vous avez vos entités. Veuillez changer le nom du paquet aussi.

Cela définira tous les champs de type “Ssortingng” sur “text” dans la firebase database du package spécifié.

package-info.java

 @TypeDefs({ @TypeDef(name="ssortingng",defaultForType=java.lang.Ssortingng.class,typeClass=org.hibernate.type.TextType.class) }) package com.package.app; import org.hibernate.annotations.TypeDef; import org.hibernate.annotations.TypeDefs;