Disons-nous, il y a une entité hibernée configurée avec un accès sur le terrain au moyen d'annotations. Je voudrais mapper un champ de classe Java Anticiper des suggestions incorrectes: la commutation de type d'accès à "propriété" n'est pas possible; La tâche n'a rien à voir avec le nom de la colonne physique. P> _name code> de sorte que son nom logique pour hibernate soit nom code>, par exemple, lorsqu'il est renvoyé des requêtes HQL. J'en ai besoin pour la plupart des collections. P>
4 Réponses :
Voulez-vous dire comme ça?
Non, ce n'est pas sur le nom de la colonne. Je souhaite qu'un HQL comme celui-ci soit possible: Sélectionnez Nom à partir de la sénicité code>
Vous pouvez créer la deuxième propriété avec un nom de nom différent sur la même colonne et l'utiliser dans les requêtes HQL. Mais il y a une restriction: seule une de ces propriétés peut être mappée comme insérable, mise à jour.
@Column(name="name") private string name; @Column(name="name", insertable=false, updatable=false) private string alsoName;
Désolé, j'ai oublié de mentionner que je suis surtout intéressé par une aliasing de collections
Vous pouvez utiliser alias dans HQL comme vous l'utilisez dans SQL. Vous n'avez pas besoin de spécifier d'annotation pour cela. Les annotations peuvent être ajoutées pendant les requêtes: p>
Sélectionnez ID de nom _name p>
Basé sur ma compréhension de votre question -
Vous pouvez définir l'entité comme celle-ci. Cela générera une table hibernate nommée (newname_abc avec un nom de colonne) peut par balle peut utiliser LIBIBASE pour créer la table. P> P>
Si cela aide, mon grand objectif est de marier hibernate avec Scala afin que les collections Java soient utilisées pour la cartographie au niveau bas, tandis que les emballages de collecte Scala appropriés soient exposés à l'extérieur. Malheureusement, bien que JVM permet aux champs et aux méthodes d'auto-intitulé, SCALA ne peut pas supporter cela, de sorte qu'il semble qu'il ne semble pas possible de créer un champ de style Java avec
nom code> et accessoir scala appelénom () code>Vous pouvez essayer un caractère de propriété personnalisé hibernate, mais cela semble être brisé: hibernate.atlassian.net/browse / Hcann-48 :(