Champ de texte de l'utilisation d'Hibernate Annotations
J'ai du mal à définir le type d'une Chaîne, il va comme
public void setTextDesc(String textDesc) {
this.textDesc = textDesc;
}
@Column(name="DESC")
@Lob
public String getTextDesc() {
return textDesc;
}
et ça ne fonctionne pas, j'ai vérifié la base de données mysql schéma et il reste varchar(255), j'ai aussi essayé,
@Column(name="DESC", length="9000")
ou
@Column(name="DESC")
@Type(type="text")
Je suis en train de faire le type de TEXTE, une idée serait bien apprécié!
- Qui hibernate version utilisez-vous?
Vous devez vous connecter pour publier un commentaire.
Vous dit "j'ai vérifié la base de données mysql schéma et il reste varchar(255)" - avez-vous attendre d'Hibernation pour modifier automatiquement votre base de données? Il ne sera pas. Même si vous avez
hibernate.hbm2ddl.auto
ensemble, je ne crois pas que Hibernate serait de modifier l'existant, définition de la colonne.Si vous étiez à générer de nouvelles script de création de base de données,
@Lob
devrait générer "TEXTE" type de colonne si vous ne spécifiez pas de la longueur de façon explicite (ou si vous le faites et c'est moins que 65536). Vous pouvez toujours la force que de déclarer explicitement le type de@Column
annotation, mais gardez à l'esprit que n'est pas portable entre les bases de données:columnDefinition
est aussi explicite que vous pouvez obtenir - il doit y avoir quelque chose d'autre se passe. Êtes-vous sûr que votre classe compilée est d'obtenir ramassé par Hibernate correctement? Est-il étendre / être prolongée par une autre classe? Peut pas penser à autre chose qui pourrait causer cette main, mais si vous pouvez poster tout votre source pour cette classe, votre Hibernate configuration et de décrire la façon dont vous utilisez ce, je vais certainement voir si quelque chose saute sur moi. Aussi pouvez-vous essayer d'ajouter un bidon de propriété de cette classe et de génération de schéma en tant que fichier SQL pour voir si il y apparaît (sanity check)?@Indexed
? Je suis sûr que ce n'est pas une Hibernate ou JPA annotation. Si vous signifiait@Index
, alors j'ai vraiment ne parviennent pas à voir comment cela pourrait changer quoi que ce soit à l'égard du problème ci-dessus... Si vous comprendre quel était le problème, je vous en serais reconnaissant si vous poster une réponse ici - je vous promets de upvote il 🙂Il existe un moyen de définir le mappage par défaut pour "String" type de jeu "texte" type dans la base de données.
Enregistrez le fichier suivant dans le module où vous avez vos entités. S'il vous plaît changer le nom du package.
Cela va régler tous les "Chaîne" des champs de type "texte" type dans la base de données pour le package spécifié.
package-info.java