11
votes

Integer Obtenir la valeur par défaut 0 où il est nécessaire d'être null en Java

Mon exigence semble simple, mais je sens que je vais faire quelque chose de mal dans le code.

Tout ce dont j'ai besoin, c'est insérer "null" dans la base de données Oracle lorsque rien n'est transmis du champ InputText de l'interface utilisateur. < p> paymantspEcomPage.xhtml xxx

paiepecvo.java xxx < p> et dans ma table de base de données xxx

et quand je ne sais rien dans InputText, alors à la place de NULL, 0 est entré dans le tableau, qui a une signification différente dans ma logique d'entreprise , s'il vous plaît aidez-moi à faire des changements de code nécessaires.


4 commentaires

Faites une méthode! , si InputText est null? renvoyer une valeur par défaut null


doit fonctionner comme ceci, mais pas en cas de classe entière, c'est-à-dire où le Problème Araïe


La réponse à votre question est probablement ici: Stackoverflow.com/Questtions/6098210/...


@Badaro il a résolu ma moitié de problème, et maintenant ses valeurs nulles, mais lors de la récupération de la récupération de 0 à nouveau.


3 Réponses :


-1
votes

Je ne sais pas comment vous lisez ce xhtml. À la couche Java, vous pouvez remplacer soit le constructeur de PaymentsPecvo ou le setter pour PayMstartwk


5 commentaires

Salut, essayé entier privé paymstartwk = null; Mais ne semble pas de chance!


PaymentsPECVO () {SETPAYMSTARTWK (NULL);}


paymstartwk = null; et PaymentsPecvo () {SetPaymStartwk (NULL);} Exécutez Vain, Stills définit la valeur par défaut comme 0.


Ensuite, votre setter est appelé ailleurs. Vous devez vérifier cette partie


.



-1
votes

Essayez ceci xxx

mais vous avez peut-être besoin de beaucoup d'analyses là-bas.

EDIT *

Si vous n'entrez rien à votre "Texte d'entrée" La valeur passée est NULL mais que vous l'attrapez avec un entier, il interprète null à 0. Donc, lorsque vous l'enregistrez, même après avoir manipulé des méthodes et des variables à NULL, elle stockera «0», car il s'agit essentiellement de la valeur par défaut.

Une autre solution, je pense faire une classe personnalisée qui stocke des entiers

Exemple: xxx

Vous pouvez faire toutes les implémentations que vous souhaitez ,

Vous pouvez utiliser cela comme substitut à La classe INTEGER que vous utilisez, si vous ne voulez pas utiliser de chaîne


8 commentaires

I Utilisation de la méthode de Spring Data Data Save () pour stocker dans le tableau, et il serait bien que la logique soit implémentée à l'aide d'entier au lieu de la classe de cordes.


Si vous n'entrez rien à votre "texte d'entrée", la valeur transmise est null mais que vous l'attrapez avec un entier qui interprète null à 0.


Entier n'est qu'une classe wrapper mais ce n'est pas un objet, la valeur par défaut des objets est NULL, le type primitif numérique a une valeur par défaut de 0


D'accord, mais comment puis-je mettre entier à NULL dans mon haricot si je n'entre rien? Et entier étant une classe, il peut stocker la valeur null où comme étant une primitive ne peut pas stocker NULL.


Vous ne pouvez pas, oui, il peut stocker NULL mais vous ne pouvez pas récupérer la valeur, il retournera 0.


À mon mauvais ses magasins 0 et retourne 0.


@Inayathulla vérifie mes modifications, si cela peut aider


Merci pour votre aide, mais c'est un problème réel tout en intégrant JSF avec Tomcat.



17
votes

et quand je ne sais rien dans InputText, alors au lieu de NULL, 0 est entré dans le tableau em> p>

Ce problème est reconnaissable comme l'analyseur EL Tomcat ne prenant pas compte que vous utilisez entier code> au lieu de int code>. Vous devez ajouter l'argument VM suivant à Tomcat Options de démarrage: P>

-Dorg.apache.el.parser.COERCE_TO_ZERO=false


4 commentaires

J'ai utilisé -dorg.apache.el.parser.coerce_to_zero = FALSE, en tant qu'argument et ma logique d'entreprise utilise un fichier de données entier plutôt que INT. J'utilise JPA de données de printemps pour persister les entrées. @TransActional (Readonly = Faux) Public PaymentsPEC Enregistrer (PaymentsPec PaymentsPec);


Désolé, je ne fais pas de printemps. Vous feriez mieux de poser une question distincte pourquoi un champ numéro avec un null est obtenu sous forme 0 à partir de données de ressort JPA.


Merci, j'aime lire vos commentaires :)


@Ballusc, cette question existe réellement à JBoss Wildfly 8.2.0 finale. J'ai un messagebean avec une variable integer NULL, mais lors du fait de # {non vide} Le composant est rendu. Existe-t-il une façon de traiter null entier comme null dans jsf el?