impossible de lire la valeur de la colonne du jeu de résultats ; String index out of range: 0
Je suis en train de lire les données d'une table( à partir d'une Base de données MySQL) avec mise en veille prolongée de Requête SQL.
La chose est, la table contient une colonne qui est mappé à un char en veille prolongée Modèle, et, parfois, cette colonne est vide.
Et je suppose que c'est là que mon exception vient de.
Comment puis-je carte une colonne de char à ma hibernate modèle sans erreur ?
Merci pour vos réponses !
Merci pour votre réponse !
Ma colonne n'est pas nullable (I 'm à l'aide de MySQL et cette colonne n'est PAS NULL)
Ensuite, je ne pense pas que
if (str == null) {
est approprié.
l'erreur est :
15:30:35,289 INFO CharacterType:178 - could not read column value from result set: LSFUS11_20_; String index out of range: 0
qui entraîne l'exception suivante :
java.lang.StringIndexOutOfBoundsException: String index out of range: 0
at java.lang.String.charAt(String.java:558)
Je pense que je peut essayer votre solution, mais avec :
if (str == "") {
car il ne peut pas être nulle, c'est juste une Chaîne vide.
Merci pour votre morceau de code, je vais essayer ça !
Vous devez vous connecter pour publier un commentaire.
Je déduis de votre question que vous êtes à la cartographie présente un caractère primitif. La prochaine fois, merci de poster le stacktrace que vous recevez (vous pouvez laisser où vous l'appelez, vous ne pouviez inclure l'hibernation des trucs si votre projet est trop sensible).
Si vous ne carte à un caractère primitif, et il est nul, vous aurez une exception, car les primitives ne peuvent pas avoir la valeur null affecté.
Cette classe permettra d'atténuer ce problème, le "null" le caractère est retourné comme un personnage représentant un "0". Vous pouvez la personnaliser à votre goût:
À l'utilisation de ce nouveau type, dans votre hibernate mapping, avant que vous avez eu quelque chose comme:
Maintenant, il suffit juste de préciser le nom de la classe comme votre type:
Cependant, la meilleure pratique est de ne pas utiliser les types primitifs de base de données de cartographie. Si possible, utilisez des Caractères au lieu de char, parce que de cette façon, vous n'aurez pas un problème avec la valeur null (null peut être attribué à l'emballage des types).
utiliser la fonction native de GAUCHE ou de DROITE pour modifier la colonne de type de données d'origine
supposons que ce est la requête SQL qui donne l'erreur
sélectionnez nom d'utilisateur des Utilisateurs
changer avec:
sélectionnez GAUCHE(nom d'utilisateur,100) auprès d'Utilisateurs
le nombre doit être égal à la taille du champ
Rechercher votre JBoss (serveur) si
mysql.jar
(mysql-connector-java-5.1.7-bin) est présent dans les fichiers lib ou pas.Même j'ai été confronté au même problème, après l'ajout de la
mysql.jar
fichier il fonctionne très bien.