J'ai une propriété appelée isactive dans ma classe de pojo. Lorsque j'ai généré les accesseurs de cette propriété à l'aide d'Eclipse IDE, il génère des getters and Setters suivants Cependant, lorsque j'essaie d'écrire cette propriété à l'aide de la framework ibatis en mentionnant le nom de propriété comme "Isactive", Il berce de ne pas pouvoir trouver des propres infâbles nommés «Isactive». Le problème à laquelle je pense que se trouve sans pouvoir déduire le nom de propriété correct en infère Setter comme Settisactive (). P> Quelle est la meilleure façon d'y aller sans changer le nom de la propriété ou getter? p> p>
5 Réponses :
Les getters de champ booléen primitif sont créés comme isfieldname code>. Donc, dans Ibatis, vous devez donner le nom de la propriété comme
actif code> pas
isacacac code> p>
Il y a un moyen de sortir.
Visite Windows -> Préférences -> Java -> Style de code et désélectionnez l'option «Utiliser» est «préfixe ...» (bien sûr, vous pouvez modifier cela sur les propriétés du projet si vous n'avez pas 't veux cela comme un comportement global dans l'éclipse). p>
Ceci changera le comportement à p> moche à mes yeux mais ibatis devrait arrêter de se plaindre maintenant . p> p>
Cela signifie que vous créez une mauvaise opération de contournement pour créer une propriété nommée «Isactive». Jetez un coup d'œil à la réponse de Fatih à la place :)
@Davogotland - il a i> une propriété nommée isacacacer code> et ne veut pas changer son nom. C'est comme ça que j'ai compris les exigences. S'il est prêt à changer de noms de propriété: sûr b> - renommer que Beast to
actif code>.
isactif code> est un nom de getter, pas un nom de champ ;-)
haha, tu as raison. Je n'ai même pas vu ça. Je viens de voir "isactif" et j'ai supposé que la propriété était appelée "active".
Je n'ai pas utilisé Ibatis, mais Hibernate vous permet de spécifier le nom de la méthode d'accès. C'est là que vous pouvez remplacer le comportement par défaut des ormes pour calculer le nom de la méthode pour la définition de la propriété. P>
La convention de nommage pojo s'attend à ce que . Dans votre cas, votre pojo devrait ressembler à; p> Vous pouvez le démontrer vous-même en créant une classe dans votre IDE et en définissant la variable code> actif booléen privé code> variable , puis obtenir l'IDE pour générer des getters et des setters. p> p> Boolean code> Types appelés
xxx code> Pour avoir des méthodes
isxxx code> et
setxxx code>.
Merci pour les réponses. En passant par les exigences que je n'avais pas souhaité de modifier les variables de mes membres de la classe Pojo, la version Ibatis que j'utilisais ne fonctionnait pas comme prévu. Lorsque j'ai mis à niveau ma version à 2.3.4 à partir de 2.3.0, la question a été résolue et le même code a fonctionné de manière transparente. Je suppose avec cette mise à niveau, ils sont pris en compte dans la convention de haricots Java de génération d'accessoires Isactive () et SettisActive () si la propriété de type booléen primitive est définie comme Isactive. Merci! P>
Si votre getter est
isactive () code>, votre nom de propriétaire n'est-il pas un nom
actif code> alors?
@Biziclop: Non Si vous l'essayerez, vous verrez que Getter a raison. Isactive () Getter est créé pour le champ iSactif.
Je pense que vous confondez le domaine des biens et des instances. Le nom de la propriété dans votre cas est
actif code>, quel que soit le champ d'instance, il est soutenu. Il est même possible qu'il n'y ait pas de champ de champ de votre propriété, par ex. Propriété
heures code> (obsolète) dans
java.util.date code>.