Mappage des colonnes MyBatis
Je suis à l'aide de MyBatis 3.0.3 et avoir de problème: certaines colonnes dans la base de données ont des noms avec des caractères de soulignement et ces colonnes doivent être mappés sur les propriétés d'entité (qui sont bien sûr en camelCase)
class User {
private String first_name;
...
}
public interface UserDao {
@Select("SELECT * FROM users")
List<User> findAllUsers();
}
Malheureusement, je ne vois aucun moyen de résoudre ce declaretively (comme cela se fait dans JPA - @Column(name = "prenom")).
J'ai pu faire des alias, sélectionnez-la clause pour ces colonnes (sush comme prenom comme prénom, etc...), mais qui regarde aussi boiteux.
Des idées? Merci.
source d'informationauteur Anders D
Vous devez vous connecter pour publier un commentaire.
Grâce à DwB. Qui m'a aidé:
ps, Mais dans le cas de plusieurs requêtes, j'ai besoin de boilerplate @Résultats/@code de Résultat pour chaque méthode où l'entité Utilisateur est renvoyé. Dans mon cas, il y aura très peu d'endroits de sorte qu'il n'est pas un problème, mais en général, j'aimerais en trouver plus de solution générale.
Eduardo Macarron a suggéré cette fonctionnalité sur le problème suivant:
https://code.google.com/p/mybatis/issues/detail?id=43
Selon la documentation de MyBatis 3, c'est maintenant possible grâce à un réglage décrites dans:
http://mybatis.github.io/mybatis-3/configuration.html#settings
Fondamentalement, vous devez configurer:
Qui signifie:
Définir un
ResultMap
dans leUserMapper.xml
fichier, et ajouter ces lignes:Dans votre code Java, ajouter
@ResultMap
annotation:Vous pouvez utiliser MyBatis Générateur pour générer ces codes de base automatiquement.
Si il n'y a pas autant de colonnes que vous pouvez le faire de cette façon et éviter ResultMap.
pour la rendre plus lisible, vous pouvez utiliser le tableau de chaînes de caractères, qui MyBatis concanate avec de l'espace supplémentaire
Au printemps annotation de configuration basée sur le trait de soulignement à dos de chameau cas de cartographie peut être activé par le biais d'un personnalisable SqlSessionFactory, comme ça:
utilisation MyBatis du mappage Automatique dans votre fichier de configuration (qqch comme application.propriétés ou de l'application.yml),
ici, comme:
Référence: http://www.mybatis.org/mybatis-3/sqlmap-xml.html#Auto-mapping
Chinois De Référence:
http://www.mybatis.org/mybatis-3/zh/sqlmap-xml.html#Auto-mapping